在数组PHP

时间:2018-03-25 10:21:08

标签: php arrays

我需要获取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)

2 个答案:

答案 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