我有一种感觉,这个问题以前一定在这个网站上被问过,但就我而言,我找不到确切的答案。
我想检查多维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
)
)
id
键下是否存在"1"?(它存在于publishDate
密钥和visible
密钥中,但我不想检查这些字段。)
所以基本上"1"、"4"one_answers"7"都会返回TRUE。而其他一切都会返回FALSE。
这肯定是可能的,但array_search
和array_key_exists
似乎没有给我所需要的。
谢谢。
老实说(imo),您最好的选择可能是编写自己的函数。
function visibleID($array, $id)
{
foreach ($array as $entry)
{
if ($entry['id'] === $id)
return true;
}
return false;
}
如果你愿意的话,我相信你是否可以写一个更通用的函数(即将"visiblity"键作为func arg传递),但这取决于你自己。
您可以编写更通用的函数来检查键值对。通过扩展以上函数:
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;
}
//-------------该函数将适用于任何维度的数组,甚至同时适用于两个数组(同构和异构)