PHP在多维数组中匹配值

时间:2012-01-18 00:56:25

标签: php mysql arrays multidimensional-array

我在10分钟的时间间隔内循环2次,效果很好,输出的时间如下:

<?=$time->format('H:i')?>

然后我从数据库中提取数据,然后我想查看循环中的数据是否与数据库中的数据匹配。我创建了一个方法来从数据库中获取所有记录并将它们输出到数组中。然后我想使用in_array匹配它们,然后通过另一个方法运行该值以获取有关它的数据。问题是它不匹配,问题在于:

if (array_search($time->format('H:i'), $bookings))
echo "Match";

$ booking是一个多维数组,如下所示:

Array ( 
[0] => Array ( [id] => 1 [time] => 12:00 ) 
[1] => Array ( [id] => 2 [time] => 15:00 )
...
)

提前致谢!

2 个答案:

答案 0 :(得分:1)

如果直接从数据库获取值,会更容易。如果你想在php中处理它,你可以尝试使用array_walk()。我不确定语法,但应该像

function search($value, $key, $needle)
{
    array_search($needle, $value);
}

array_walk($bookings, 'search', $time->format('H:i'));

其中$value将是您的内部数组 大家,如果我的语法错误

,请纠正我

答案 1 :(得分:0)

直接查询数据库可能会更简单 - 如果可以的话 - 而且你的查询会像

那样
select * from `table_name` WHERE `date_field` = $your_date

如果这不能形成解决方案,您可以使用上面的array_walk,或者只是循环一点:

foreach($bookings as $array) {
    if(array_search($time->format('H:i'), $array)) {
        echo 'match';
        // If you don't want to keep searching use 'break'.
    }
}