我有一个数组
$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,它没有用 任何解决方案将不胜感激
答案 0 :(得分: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
该函数循环遍历数组中的元素,搜索日期的子元素。
答案 1 :(得分: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
适用于一维数组,因此您必须在每个子数组中单独检查。
答案 2 :(得分: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']);
答案 3 :(得分: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);