-1

我有一个数组

$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 是否在数组中,

我尝试使用 in_array ,它没有工作任何解决方案将不胜感激

4

4 回答 4

3

像这样的东西

<?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

该函数循环遍历数组中的元素,在其子元素中搜索日期。

于 2012-08-04T16:06:53.977 回答
0
$is_in_array = false;
foreach ($user as $sub_array){
    if (in_array("2/3/2012", $sub_array)){
        $is_in_array = true;
        break;
    }
}

关键是in_array适用于一维数组,因此您必须分别检查每个子数组。

于 2012-08-04T16:07:53.070 回答
0

检查链接 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 in_array($var, $user['123']);

于 2012-08-04T16:08:12.210 回答
0

这是我编写的用于深入搜索值的递归 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);
于 2012-08-04T16:31:34.007 回答