PHP:如何在数组中搜索特定键的所有条目并返回值?

Jas*_*son 4 php arrays recursion search

我有一个多维数组,例如:

$array = array(
  array('test'=>23, 'one'=>'etc' , 'blah'=>'blah'),
  array('test'=>123, 'one'=>'etc' , 'blah'=>'blah'),
  array('test'=>33, 'one'=>'etc' , 'blah'=>'blah'),
);
Run Code Online (Sandbox Code Playgroud)

如何在数组中搜索所有键'test'并获取值?我希望在数组中添加'test'的所有值,所以它会以'214'为例.阵列应该是任何深度,但无论如何关键都是相同的.

Anu*_*rag 5

处理递归数组.

$array = array(
  array('test' => 23, 'one' => array("a" => "something", "test" => 28), 'blah' => array("test" => 21)),
  array('test' => 123, 'one' => 'etc' , 'blah' => 'blah'),
  array('test' => 33, 'one' => 'etc' , 'blah' => 'blah'),
);

function recursiveSum($array, $keyToSearch) {
    $total = 0;
    foreach($array as $key => $value) {
        if(is_array($value)) {
            $total += recursiveSum($value, $keyToSearch);
        }
        else if($key == $keyToSearch) {
            $total += $value;
        }
    }
    return $total;
}

$total = recursiveSum($array, "test");
Run Code Online (Sandbox Code Playgroud)

  • 当我们不使用工具重构时会发生什么:) (2认同)