在关联数组中搜索特定值

时间:2014-11-17 13:05:30

标签: php

我有一个关联数组,它是由查询使用以下代码创建的:

$query = ("SELECT `time_stamp`, `EAE` FROM `table`");
$stmt = $con->query($query);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $rows;

要访问每个值,我通常使用for循环,例如:

for($i = 0 ; $i < count($rows) ; $i++)
{
     echo $rows[$i]['time_stamp'].' '.$rows[$i]['EAE'].'<br>';
}

但是,我想访问在特定time_stamp中注册的值。为此,我无法使用函数array_search。我试过这样设置:

$sum_a = array_search(date('Y-m-d', $rows[$j]['time_stamp'])." 00:00:00", $rows);

但它找不到任何东西。我找不到一种方法来使用双范围数组的这个函数。你们知道我怎么用吗?或者,如果有另一种方法不涉及再次访问数据库或在整个阵列上运行循环?

PS:我也尝试使用in_array检测一个值,但它没有找到任何内容。

1 个答案:

答案 0 :(得分:2)

在您的情况下,

$rows将是多维数组。 array_search仅循环第一维 - 这就是您的代码无效的原因。

您可以使用。

获取指定列的值
$column = array_map(function($element){return $element['time_stamp'];}, $rows);

对于PHP 5.5+,您可以使用array_column

然后你可以使用自己的代码

$sum_a = array_search(date('Y-m-d', $rows[$j]['time_stamp'])." 00:00:00", $column);