-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

これは、詳細な値を検索するために作成した再帰的な 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 に答える
0
$is_in_array = false;
foreach ($user as $sub_array){
    if (in_array("2/3/2012", $sub_array)){
        $is_in_array = true;
        break;
    }
}

ポイントは、in_array1 次元配列で機能するため、各サブ配列を個別にチェックする必要があることです。

于 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 に答える