HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/magento/framework/Api/ArrayObjectSearch.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

namespace Magento\Framework\Api;

/**
 * Class to provide possibility to search for any object's property value by the name and value of another property
 */
class ArrayObjectSearch
{
    /**
     * Search for the value's value by specified key's name-value pair in the object
     * <pre>
     * Example of usage:
     * $data = array(
     *     ValidationRuleBuilderObject('name' => 'min_text_length', 'value' => 0)
     *     ValidationRuleBuilderObject('name' => 'max_text_length', 'value' => 255)
     *     ValidationRuleBuilderObject('anyOtherName' => 'customName', 'anyOtherValue' => 'customValue')
     * );
     *
     * Call:
     * $maxDateValue = ArrayObjectSearch::getArrayElementByName(
     *     $data,
     *     'max_text_length'
     * );
     * By default function looks for `value`'s value by the `name`'s value
     * Result: 255
     *
     * Call:
     * $customValue = ArrayObjectSearch::getArrayElementByName(
     *     $data,
     *     'customName',   //what key value to look for
     *     'anyOtherName', //where to look for
     *     'anyOtherValue' //where to return from
     * );
     * Result: 'customValue'
     * </pre>
     * @param object $data Object to search in
     * @param string $keyValue Value of the key property to search for
     * @param string $keyName Name of the key property to search for
     * @param string $valueName Name of the value property name
     * @return null|mixed
     */
    public static function getArrayElementByName($data, $keyValue, $keyName = 'name', $valueName = 'value')
    {
        $getter = 'get' . ucfirst($keyName);
        if (is_array($data)) {
            foreach ($data as $dataObject) {
                if (is_object($dataObject) && $dataObject->$getter() == $keyValue) {
                    $valueGetter = 'get' . ucfirst($valueName);
                    return $dataObject->$valueGetter();
                }
            }
        }
        return null;
    }
}