不定数の配列で構成される配列を再帰的に (n レベルの深さ) 持っています。各配列にはname
キーが含まれる場合があります。それらの値の一意のリストを作成したいと思います。
例
配列が次のとおりであるとします。
$bigArray = array(
'name'=>'one',
'something'=>array(
'name'=>'two',
'subthing'=>array('name'=>'three')
),
'anotherthing'=>array('name'=>'one')
);
期待される結果は次のようになります。
$uniques = array('one', 'two', 'three') // All the 'name' keys values and without duplicates.
これが私の試みのフィドルです。
私のアプローチはarray_walk_recursive
、配列を参照として渡し$uniques
、関数がその値を更新できるようにすることでした。
$uniques = array();
function singleOut($item, $key, &$uniques) {
if ($key == 'name' && !in_array($itm,$uniques,true) )
$uniques[] = $item;
}
array_walk_recursive($bigArray, 'singleOut', $uniques);
しかし、それは私にとってはうまくいきません。