我需要获取value = 1260
元素的路径,而不知道它所在的数组的哪个阶梯。
如果有几个这样的元素,第一个。
这就是我所做的,但是在这里它发送一个数组,其中这个元素(我需要一个这个元素的路径)
function searchA($array, $nsearch) {
foreach ($array as $el) {
if(in_array($nsearch, $el)){
print_r($el);
} else{
searchA($el);
}
}
此数组= array
我的要求:
创建一个函数来查找数组中的元素
示例:
2018-02, will return [Stats][0][Season]
示例函数如下所示:
function searchA($array, $nsearch)
答案 0 :(得分:0)
由于我不知道你已尝试过什么,也许你可以试试这个:
$key = array_search( $valueYouLookFor, array_column( $array, $keyName ) );
用法:
$key = array_search( '2018-02', array_column( $array, 'date' ) );
这只会给你钥匙,从那里你可以获得其他价值。
答案 1 :(得分:0)
您要寻找的是递归搜索,更改输出以满足您的需求:
<?php
function array_search_path_recursive(array $haystack, $needle)
{
foreach ($haystack as $key => $value) {
if (is_array($value)) {
$result = array_search_path_recursive($value, $needle);
if ($result !== false) {
return $key . '.' . $result;
}
} elseif ($value === $needle) {
return $key;
}
}
return false;
}
echo array_search_path_recursive([['foo' => ['bar' => 'baz']]], 'baz');
# => 0.foo.bar