Как найти ключ массива из второго массива, где внутренние ключи и значения соответствуют первому массиву? - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть массив # 1, который содержит:

Array
(
    [attribute_pa_color] => blue
    [attribute_pa_size] => large
)

У меня есть массив № 2, который содержит:

Array
(
    [4624] => Array
        (
            [attribute_pa_color] => blue
            [attribute_pa_size] => large
        )

    [4625] => Array
        (
            [attribute_pa_color] => blue
            [attribute_pa_size] => medium
        )

    [4626] => Array
        (
            [attribute_pa_color] => blue
            [attribute_pa_size] => small
        )

)

Как найти ключ массива из массива # 2, где внутренние ключи и значения соответствуют массиву 1?

Я экспериментировал с несколькими foreach'ами, но я не могу понять это правильно, это моя текущая идея:

$i = 0;
foreach( $array_2 as $array2_key => $array2_array ) {

    foreach( $array2_array as $a2_key => $a2_value ) {

        if( $a2_value == $array1[$a2key] ) {

            $i = $i + 1;

            if( $i == count( $array1 ) ) {

                $break = 1;

            }

            if( $break == 1 ) {

                break;

            }

        }

    }

    if( $break == 1 ) {

        echo 'key is: ' . $array2_key;

        break;

    }

}

Ответы [ 2 ]

3 голосов
/ 11 апреля 2019

Массивы можно сравнить с ==:

foreach ($array2 as $key => $item) {
    if ($item == $array1) {
        echo 'Item with key ' . $key;
    }
}
1 голос
/ 11 апреля 2019

Это даже проще, так как array_search принимает массив для иглы:

$key = array_search($array1, $array2);
...