PHP多维查找key =>值并返回键?

时间:2012-03-20 15:58:46

标签: php

我正在尝试搜索多维数组,以便将内容附加到特定元素。我有一个执行搜索的函数并返回该数组的特定部分,但我需要密钥,因此我可以进行$array[key]编辑。

获取数组的函数

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;
}

我真的不知道如何编辑它来从数组中获取密钥。

1 个答案:

答案 0 :(得分: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;
}

然后您将能够处理每个$ results条目,就好像它直接在$ array中一样。

$searchResult = arraySearch($myArray, 'test', 'val');
foreach ($searchResult as &$item) {
  $item['nb']++;
}