2012-03-20 16 views
1

私は多次元配列を検索して特定の要素に要素を追加しようとしています。私は検索を行い、その配列の特定の部分を返す関数を持っていますが、私は$array[key]の編集を行うことができるようにキーが必要です。配列PHP多次元key => valueとreturnキーを探しますか?

function arraySearch($array, $key, $value) 
{ 
    $results = array(); 
    if (is_array($array)) 
    { 
     if (isset($array[$key]) && $array[$key] == $value) 
      $results[] = $array; 
     foreach ($array as $subarray) 
      $results = array_merge($results, arraySearch($subarray, $key, $value)); 
    } 
    return $results; 
} 

を取得する

機能私は本当に配列からキーを取得するために、これを編集する方法を知りません。

+0

[回答](http://stackoverflow.com/questions/5219871/multidimensional-array-search-using-php)あなたはその関数に渡す配列のどのような – afuzzyllama

+0

?この関数は、ネストされた配列に一致するキーと値のペアを見つけるように設計されています。たとえばネストの4レベルの下で一致するものが見つかった場合、「キー」として何を得ることが期待されますか? – bfavaretto

+0

これは単なるレベル配列です。だから配列(0 =>配列(ここ)...) – Steven

答えて

0

function arraySearch($array, $key, $value) 
{ 
    $results = array(); 
    if (is_array($array)) 
    { 
     if (isset($array[$key]) && $array[$key] == $value) 
      $results[] = &$array; 
     foreach ($array as $subarray) 
      $results = array_merge($results, arraySearch($subarray, $key, $value)); 
    } 
    return $results; 
} 

「&」の参照を使用してみてくださいそして、それは$配列に直接であるかのように、あなたはそれぞれ$結果のエントリを処理することができるようになります。

$searchResult = arraySearch($myArray, 'test', 'val'); 
foreach ($searchResult as &$item) { 
    $item['nb']++; 
} 
関連する問題