Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php二维数组搜索_Php_Search_Associative Array - Fatal编程技术网

php二维数组搜索

php二维数组搜索,php,search,associative-array,Php,Search,Associative Array,我有一个数组 $user['123'][]= 2/2/2012; $user['123'][]= 2/3/2012; $user['123'][]= 2/4/2012; ['123'] => Array ( [0] => 2/2/2012 [1] => 2/3/2012 [2] => 2/4/2012 ) 我想做的是检查$var=2/3/2012是否在数组中 我试着在数组中使用,但不起作用 任何这样的解

我有一个数组

$user['123'][]= 2/2/2012;
$user['123'][]= 2/3/2012;
$user['123'][]= 2/4/2012;
  ['123'] => Array
    (
        [0] => 2/2/2012
        [1] => 2/3/2012
        [2] => 2/4/2012
    )
我想做的是检查$var=2/3/2012是否在数组中

我试着在数组中使用,但不起作用 任何这样的解决方案都将受到欢迎

<?php

$user['123'][]= '2/2/2012';
$user['123'][]= '2/3/2012';
$user['123'][]= '2/4/2012';

function dateIn2DArray($date, $haystack) {
  foreach($haystack as $dates) {
    if (in_array($date, $dates)) {
      return true;
    }
  }

  return false;
}

var_dump(dateIn2DArray('2/2/2012', $user)); // true
var_dump(dateIn2DArray('2/2/2013', $user)); // false

关键是,数组中的
适用于一维数组,因此必须在每个子数组中分别进行检查。

检查链接
http://php.net/manual/en/function.in-array.php

$user['123'][]='2/2/2012'

$user['123'][]='2/3/2012'

$user['123'][]='2/4/2012'

$var='2/3/2012'


echo在_数组中($var,$user['123'])

以下是我编写的一个递归PHP函数,用于深入搜索值:

function in_array_recursive($needle, $haystack){
    if (in_array($needle, $haystack)) return true;
    else{
          foreach ($haystack as $key=>$value){
            if (is_array($haystack[$key])) {
                return in_array_recursive($needle, $haystack[$key]);
                }
          }
          return false;
    }
}
电话:

 echo in_array_recursive($item, $arr);

这很好,但是如果我有$user['232'][],并且我想搜索特定的userID,该怎么办,就像我试图传递用户ID一样,如果(DateInDarray('2/2/2012',$user['123']){echo'trueo';}给了我一个数组
 echo in_array_recursive($item, $arr);