PHP在多维/嵌套数组中查找值

PHP在多维/嵌套数组中查找值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我已经搜索过网站和网络,尝试过各种递归函数等,但都没有用,所以我希望这里的人能指出我的错误:) 我有一个名为$meetingArray的数组,其值如下 Array ( [0] => Array ( [Meet_ID] => 9313 [Meet_Name] => 456136 [Meet_CallInNumber] => [Meet_AttendeeCode] =>

我已经搜索过网站和网络,尝试过各种递归函数等,但都没有用,所以我希望这里的人能指出我的错误:)

我有一个名为
$meetingArray
的数组,其值如下

Array ( 
    [0] => Array ( 
        [Meet_ID] => 9313 
        [Meet_Name] => 456136 
        [Meet_CallInNumber] => 
        [Meet_AttendeeCode] => 
        [Meet_Password] => 
        [Meet_ScheduledDateTime] => 2011-07-18 16:00:00 
        [Meet_ModeratorCode] => 
        [Meet_RequireRegistration] => 0 
        [Meet_CurrentUsers] => 0 
    ) 
    [1] => Array ( 
        [Meet_ID] => 9314 
        [Meet_Name] => 456120 
        [Meet_CallInNumber] => 
        [Meet_AttendeeCode] => 
        [Meet_Password] => 
        [Meet_ScheduledDateTime] => 2011-07-18 16:00:00 
        [Meet_ModeratorCode] => 
        [Meet_RequireRegistration] => 0 
        [Meet_CurrentUsers] => 0 
    ) 
)
我还有一个名为
$meetID
的变量

我想知道
$meetID
中的值是否出现在数组中的
[Meet_Name]
中,并简单地计算该值是否为真

在我开枪自杀之前,非常感谢任何帮助:)

我不知道你说的是什么意思

$meetID出现在[METE_Name]中


但只需将
$h[$key]==$needle
条件替换为满足您需要的条件即可。

编写一个类似以下内容的方法:

function valInArr($array, $field, $value) {
 foreach ($array as $id => $nestedArray) {
  if (strpos($value,$nestedArray[$field])) return $id;
  //if ($nestedArray[$field] === $value) return $id; // use this line if you want the values to be identical
 }
 return false;
}

$meetID = 1234;
$x = valInArr($array, "Meet_Name", $meetID);
if ($x) print_r($array[$x]);

如果在数组中找到记录,则此函数将计算为true,并使您能够快速访问与该ID匹配的特定嵌套数组。

对于一维数组,您可以使用
array\u search()
。这可以适用于多维阵列,例如:

function array_search_recursive($needle, $haystack, $strict=false, $stack=array()) {
    $results = array();
    foreach($haystack as $key=>$value) {
        if(($strict && $needle === $value) || (!$strict && $needle == $value)) {
            $results[] = array_merge($stack, array($key));
        }

        if(is_array($value) && count($value) != 0) {
            $results = array_merge($results, array_search_recursive($needle, $value, $strict, array_merge($stack, array($key))));
        }
    }
    return($results);
}

请下次格式化打印。您好,谢谢您的回复。@bazmegakapa:需要检查
$h
中是否存在
$key
。(停止假设!)编辑了您的代码片段。@nick好的,谢谢。如果你用这些评论来做这件事,我会把它编辑成我的问题:)。@bazmegakapa:我想我会帮你省事;-)
function array_search_recursive($needle, $haystack, $strict=false, $stack=array()) {
    $results = array();
    foreach($haystack as $key=>$value) {
        if(($strict && $needle === $value) || (!$strict && $needle == $value)) {
            $results[] = array_merge($stack, array($key));
        }

        if(is_array($value) && count($value) != 0) {
            $results = array_merge($results, array_search_recursive($needle, $value, $strict, array_merge($stack, array($key))));
        }
    }
    return($results);
}