PHP多维查找关键字=>;值和返回键


PHP Multidimensional Look for key=>value and return key?

我正在尝试搜索多维数组,以便将内容附加到特定元素。我得到了一个函数,它可以进行搜索并返回该数组的特定部分,但我需要密钥,这样我就可以进行$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;
}

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

尝试使用引用"&"

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']++;
}