我有以下数组(下面的数组),我正在尝试获取子数组值的键。
$array = array(
'USD' => array (
0 => 1.79,
1 => 3.58,
2 => 5.37,
3 => 7.16,
4 => 8.95,
),
'CAD' => array (
0 => 2.49,
1 => 4.98,
2 => 7.47,
3 => 9.96,
4 => 12.45,
),
'EUR' => array (
0 => 1.99,
1 => 3.98,
2 => 5.97,
3 => 7.96,
4 => 9.95,
)
);
$item_to_get = array_search(5.97, $array);
CURRENT OUTPUT
false
预期输出=>父键名称
EUR
答案 0 :(得分:2)
array_search
函数不是递归的,所以你必须迭代数组并搜索子数组:
$foundInParent = false;
foreach($array as $parentKey => $subArray) {
if (array_search(5.97, $subArray)) {
$foundInParent = $parentKey;
break;
}
}
echo $foundInParent;
将它包装在函数中..
答案 1 :(得分:0)
这不是array_search()
的工作方式 - 请参阅此处:http://php.net/manual/en/function.array-search.php
您可能需要array_walk()
自定义回调函数。或者使用foreach()
迭代外部数组,然后在foreach循环内迭代array_search()
。
无论如何,我建议首先以不同的方式设置数组!