多维数组搜索
Multidimensional Array Search
我有以下数组:
Array
(
[0] => Array
(
[6] => 2015-02-27 19:00
)
[1] => Array
(
[6] => 2015-02-27 20:00
)
[2] => Array
(
[6] => 2015-02-27 21:00
)
)
“6”是一个类别,我想检查该类别是否存在于相应的日期。
我有
$category = 7;
$datetocheck = "2015-02-27 20:00"
该函数应该 return 为假。
如果我有
$category = 6;
$datetocheck = "2015-02-27 20:00"
该函数应该 return 为真。
这 看起来像我想做的,但我无法让它工作。也许这不是一个合适的功能。
任何 hint/help 高度赞赏。
//编辑
我用了这个功能(从上面Post)
function in_multiarray($elem, $array,$field)
{
$top = sizeof($array) - 1;
$bottom = 0;
while($bottom <= $top)
{
if($array[$bottom][$field] == $elem)
return true;
else
if(is_array($array[$bottom][$field]))
if(in_multiarray($elem, ($array[$bottom][$field])))
return true;
$bottom++;
}
return false;
}
但是当我使用它时
in_multiarray("2015-02-27 20:00",$myArray,6)
我收到未定义的索引错误。
我试过 "in_array()" 但这对 6 和 7 来说是正确的。
试试这个:
$array = array(
array(6 => '2015-02-27 19:00'),
array(6 => '2015-02-27 20:00'),
array(6 => '2015-02-27 21:00'));
function search_in_array($search_in, $search_for){
foreach($search_in as $arr){
if(array_key_exists($search_for[0], $arr)
&& in_array($search_for[1], array_values($arr)))
return true;
}
return false;
}
var_dump(search_in_array($array, array(6, '2015-02-27 19:00')));
我有以下数组:
Array
(
[0] => Array
(
[6] => 2015-02-27 19:00
)
[1] => Array
(
[6] => 2015-02-27 20:00
)
[2] => Array
(
[6] => 2015-02-27 21:00
)
)
“6”是一个类别,我想检查该类别是否存在于相应的日期。
我有
$category = 7;
$datetocheck = "2015-02-27 20:00"
该函数应该 return 为假。 如果我有
$category = 6;
$datetocheck = "2015-02-27 20:00"
该函数应该 return 为真。
这 看起来像我想做的,但我无法让它工作。也许这不是一个合适的功能。
任何 hint/help 高度赞赏。
//编辑 我用了这个功能(从上面Post)
function in_multiarray($elem, $array,$field)
{
$top = sizeof($array) - 1;
$bottom = 0;
while($bottom <= $top)
{
if($array[$bottom][$field] == $elem)
return true;
else
if(is_array($array[$bottom][$field]))
if(in_multiarray($elem, ($array[$bottom][$field])))
return true;
$bottom++;
}
return false;
}
但是当我使用它时
in_multiarray("2015-02-27 20:00",$myArray,6)
我收到未定义的索引错误。 我试过 "in_array()" 但这对 6 和 7 来说是正确的。
试试这个:
$array = array(
array(6 => '2015-02-27 19:00'),
array(6 => '2015-02-27 20:00'),
array(6 => '2015-02-27 21:00'));
function search_in_array($search_in, $search_for){
foreach($search_in as $arr){
if(array_key_exists($search_for[0], $arr)
&& in_array($search_for[1], array_values($arr)))
return true;
}
return false;
}
var_dump(search_in_array($array, array(6, '2015-02-27 19:00')));