【发布时间】:2015-04-12 21:53:01
【问题描述】:
我有一个多维数组:
$categories = array(
array(
'CategoryID' => 14308,
'CategoryLevel' => 1,
'CategoryName' => 'Alcohol & Food',
'CategoryParentID' => 14308
),
// CHILD CATEGORIES
array(
array(
'CategoryID' => 179836,
'CategoryLevel' => 2,
'CategoryName' => 'Alcohol & Alcohol Mixes',
'CategoryParentID' => 14308
),
array(
array(
'CategoryID' => 172528,
'CategoryLevel' => 2,
'CategoryName' => 'Antipasto, Savoury',
'CategoryParentID' => 14308
)
)
)
);
我需要获取索引的确切位置,并且由于array_search 不适用于多维数组,我正在使用 PHP 手册页上提供的函数之一。
function recursive_array_search($needle,$haystack) {
foreach($haystack as $key=>$value) {
$current_key=$key;
if($needle===$value OR (is_array($value) && recursive_array_search($needle,$value) !== false)) {
return $current_key;
}
}
return false;
}
.. 但它也只返回第一个数组的键:
echo recursive_array_search(172528, $categories); // outputs 1
我期待:
[1][1][0]
【问题讨论】: