0

私はこのような配列を持っています:

Array
(
    [2] => Array
        (
            [0] => name2 surname
            [1] => email2@email.com
            [2] => 834502034
            [3] => image url3
        )

    [3] => Array
        (
            [0] => name3 surname
            [1] => email2@email.com
            [2] => 7648484886
            [3] => image url3
        )

    [0] => Array
        (
            [0] => name0 surname
            [1] => email0@email.com
            [2] => 56783658658
            [3] => image url0
        )

    [1] => Array
        (
            [0] => name1 surname
            [1] => email1@email.com
            [2] => 7648484886
            [3] => image url1
        )

)

一部の値は同じで、値の違いは 1 つだけであることに気付くでしょう。

別の単一の配列がサブ配列のいずれかと一致するかどうかを調べて、キーを返す必要があります。

私が照合する配列は多次元ではありません:

Array
            (
                [0] => name1 surname
                [1] => email1@email.com
                [2] => 7648484886
                [3] => image url1
            )

単一の配列がメイン配列内にあるかどうかを確認し、KEY を返すにはどうすればよいですか? 一致しないキー => 配列を返すコールバックで array_diff_uassoc を使用しようとしましたが、両方の結果の数を一致させて違いがあるかどうかを確認できると思いますが、一致した配列のキーが必要です。比較対象の配列には、常に正確な値 [0]、[1]、[2]、および [3] が含まれます。

4

2 に答える 2

0

これは完全一致であるため、これにはarray_searchを使用できます。

$key = array_search($array_to_find, $array_to_search_in);
于 2012-06-28T10:40:55.120 に答える
0

array_searchこれは、PHP で配列が等しいかどうかを比較する方法を利用して行われます(つまり、各サブ配列内、検索対象として提供する配列内の項目の順序は同じでなければなりません!):

$master = array(
    array('surname', 'foo'),
    array('surname', 'bar'),
);

$key = array_search(array('surname', 'baz'), $master));

if ($key === false) {
    echo "not found";
}
else {
    echo "found, key is $key";
}
于 2012-06-28T10:40:37.480 に答える