Php 如何检查多维数组中的特定元素

Php 如何检查多维数组中的特定元素,php,Php,我想在此数组中搜索50075285 $xyz=Array ( [typeA] => Array ( [details_typeA] => Array ( [id] => 50075285 [action_code] => PDF_ONLINE ) )

我想在此数组中搜索50075285

$xyz=Array
(
    [typeA] => Array
        (
            [details_typeA] => Array
                (
                    [id] => 50075285
                    [action_code] => PDF_ONLINE   
                )

        )

    [typeB] => Array
        (
            [details_typeB] => Array
                (
                   [id] => 50075287
                   [action_code] => offline
                )

        )

)

试试这个功能:

$key数组key该值应与之关联

$value您在数组中搜索的值

function arr_search($array, $key, $value)
{
    $results = array();

    if (is_object($array)){ $array = (array)$array; }

    if (is_array($array))
    {
        if (isset($array[$key]) && $array[$key] == $value)
            $results[] = $array;

        foreach ($array as $subarray)
            $results = array_merge($results, arr_search($subarray, $key, $value));
    }

    return $results;
}

请写一个适当的问题,而不仅仅是一个垃圾桶,如果我没有错的话,它是一个三维阵列,欢迎来到这里!不幸的是,你问的问题并不十分清楚。您是要对所有元素执行值搜索,还是只对特定键执行值搜索?到目前为止,您尝试了什么?另外,请先阅读此内容,然后再阅读此内容,以获得一些关于使用关联数组的思考。是的,我想进行一次值搜索,例如,如果我想检查50075285是否存在,非常感谢您的回复。我真的很高兴@Gobbin.非常感谢@Mehdi..@user10477731您的欢迎,如果这有助于$array1=数组([0]=>50059685[1]=>50070059[2]=>50070086[3]=>50070087[4]=>50070084)array2=数组([0]=>1[1]=>50059685[2]=>2[3] => 50070059 [4] => 3 [5] => 50070084 [6] => 4 )
//this gives every id in the `details_typeX` array
foreach($xyz as $type){
    foreach($type as $details){
        $value = $details['id']
    }
}
function arr_search($array, $key, $value)
{
    $results = array();

    if (is_object($array)){ $array = (array)$array; }

    if (is_array($array))
    {
        if (isset($array[$key]) && $array[$key] == $value)
            $results[] = $array;

        foreach ($array as $subarray)
            $results = array_merge($results, arr_search($subarray, $key, $value));
    }

    return $results;
}