也许有人可以帮我解决这个问题:
我正在使用基本搜索功能在数组深处查找数组。问题是,一旦找到该数组,我还想返回它的父键。 是否有可以确定数组父键的PHP函数?
以下是搜索功能的示例...理想情况下,我想返回找到的数组以及它的父键。
function search($array, $key, $value){
$results = array();
if (is_array($array)){
if ($array[$key] == $value){
$results[] = $array;
}
foreach ($array as $subarray){
$results = array_merge($results, search($subarray, $key, $value));
}
}
return $results;
}
这里有一个更好的例子来说明我的意思: 以下是我要搜索的数组示例:
Array
(
[categories] => Array
(
[1] => Array
(
[data] =>
[id] => d
[name] => Bracelets
[products] => Array
(
[0] => Array
(
[id] => j
[name] => Red
[data] =>
)
[1] => Array
(
[id] => gi
[name] => Torqoise
[data] =>
)
)
)
如果我搜索“id”为“j”的内容,我会得到这个数组:
Array
(
[0] => Array
(
[id] => j
[name] => Red
[data] =>
)
)
现在,理想情况下我还想知道这个数组的父键,在示例中是'产品',我显然需要在返回结果之前检索... < / p>
答案 0 :(得分:1)
不,没有内置功能。您可以在函数参数
中传递父键答案 1 :(得分:0)
您可以使用array_flip()交换键和值,以便可以使用值检索键。
你也可以稍微修改你的foreach到像
这样的东西foreach ($array as $subarray_key => $subarray){
$results = array_merge($results, search($subarray, $key, $value));
}
和$ subarray_key就是关键。