0

私は2つの配列を持っています、最初と2番目の配列で共通の「名前」である1つの要素があります。ここで、最初の配列の値が2番目の配列の値と一致する場合、2番目の配列から値を取得したいと思います。

最初の配列のコード:

    $rs = array();
    foreach ( $ex_array as $data ) {

                $rs[] = array( 'name' => $data['name'] );

            }

2番目の配列:

$entries_data = array();
foreach ( $array as $entry ) {

            $name = $entry['name']['value'];
            $email = $entry['email']['value'];

            $entries_data[] = array(
                'name' => $name,
                'email' => $email
            );
        }

問題は、最初の配列には複数の名前しかないため、最初の配列名を2番目の配列と比較する必要があることです。一致する場合は、特定の名前の2番目の配列からデータ全体が取得されます。in_array2番目の配列の検索名の関数を使用してこれを実行しようとしていますが、値全体をフェッチできません。どんな提案や助けも私に感謝するでしょう。

4

1 に答える 1

1

is_array()あなたの場合ではない1次元配列に使用されます。この関数は、phpドキュメントのコメントから取得し、私が編集して、あなたの例で機能するようにします

function in_multiarray($elem, $array)
    {
        $top = sizeof($array) - 1;
        $bottom = 0;
        while($bottom <= $top)
        {
            if($array[$bottom]['name'] == $elem)
                return true;
            else 
                if(is_array($array[$bottom]['name']))
                    if(in_multiarray($elem, ($array[$bottom]['name'])))
                        return true;

            $bottom++;
        }        
        return false;
    }
于 2013-09-09T13:17:51.837 に答える