連想行のインデックス付き配列である 2 つの多次元配列があります。
$array1 = array(
array('name' => 'foo', 'id' => 12),
array('name' => 'bar', 'id' => 34),
array('name' => 'boo', 'id' => 56),
);
$array2 = array(
array('name' => 'bar', 'id' => 34),
array('name' => 'boo', 'id' => 56),
array('name' => 'bar', 'id' => 78),
);
私のサンプル入力データのように、行が異なる値を持っている可能性がありid
ますが、同じname
値です。bar
id
値のみに基づいて配列を比較する必要があります。
期待される出力: (とid
がにあるため)34
56
$array2
array(
array('name' => 'foo', 'id' => 12)
)
$one_not_two = array_diff($array1['id'], $array2['id']);
何も返さないものを試しました。
$one_not_two = array_diff($array1['id'], $array2['id']);
「引数は配列ではありません」というエラーを返したものも試しました。
もともと、id
s を 1 次元配列に抽出し、それらを比較することで回避していました。アプリケーションの新機能では、多次元構造を維持しながら行を比較する必要があります。何かアドバイス?
私たちのサーバーは現在php 5.3を実行していますが、それが違いを生む場合.