0

我有一种感觉,这个问题之前一定在这个网站上被问过,但对于我的生活,我找不到确切的等价物。

我想检查多维中是否存在特定值PHP array。例如:

Array ( 
    [0] => 
    Array ( 
        [id] => 1 
        [publishDate] => 2013-02-22 01:51:39 
        [visible] => 1 
    ) 
    [1] => 
    Array ( 
        [id] => 4 
        [publishDate] => 2013-02-22 02:49:58 
        [visible] => 1 
    ) 
    [2] => 
    Array ( 
        [id] => 7 
        [publishDate] => 2013-02-22 02:50:21 
        [visible] => 1 
    ) 
)

键下是否存在“1” id?(它存在于publishDate键和visible键中,但我不想检查这些字段。)

所以基本上“1”、“4”和“7”会返回 TRUE。而其他一切都会返回 FALSE。

这一定是可能的,但似乎并没有给我我需要的东西array_searcharray_key_exists

谢谢。

4

2 回答 2

2

老实说(imo),您最好的选择可能是编写自己的函数。

function visibleID($array, $id)
{
    foreach ($array as $entry)
    {
        if ($entry['id'] === $id)
            return true;
    }

    return false;
}

我敢肯定,如果您愿意,您是否可以编写一个更通用的函数(即,将“可见性”键作为 func arg 传递),但这取决于您。

于 2013-02-22T03:31:08.107 回答
0

您可以编写更通用的函数来检查键值对通过扩展上述函数:

function visibleID($array, $id)
{
    foreach ($array as $entry)
    {
        if( is_array($entry) ) {
        array_map('visibleID',$entry); //-------------call back function 
        } else {
            if ($entry['id'] === $id)
             return true;
       }
    }

     return false;
}

//-------------此函数适用于任何维度的数组,即使是数组(同质和异质)

于 2013-02-22T05:36:35.560 回答