我有一个关联数组,它是由查询使用以下代码创建的:
$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
检测一个值,但它没有找到任何内容。
答案 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);