我有一个多维数组:递归array_search
$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]
感谢堆,这工作。对不起,这个愚蠢的问题,但如果我想打印该提取的索引的值,我不能打印'$类别。$ key',它只是打印类别,然后字面意思。 – 3zzy 2015-02-12 09:28:46
我无法弄清楚这个,任何人? – 2015-07-21 13:56:53