我有一种感觉,这个问题一定是在这个网站上提出过的,但是对于我的生活,我找不到相同的等价物。
我想检查多维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”和“7”将返回TRUE。虽然其他一切都会返回FALSE。
必须这样,但array_search
和array_key_exists
似乎没有给我我需要的东西。
感谢。
答案 0 :(得分:2)
老实说(imo),你最好的选择可能只是写自己的功能。
function visibleID($array, $id)
{
foreach ($array as $entry)
{
if ($entry['id'] === $id)
return true;
}
return false;
}
我确定你是否可以编写一个更通用的函数(例如,将'visiblity'键作为func arg传递),但这取决于你。
答案 1 :(得分: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;
}
// -------------这个函数可以在任何维度数组上工作,即使是两个数组(同质和异质)