Php 在关联数组中搜索特定值
我有一个关联数组,该数组由使用以下代码的查询创建:Php 在关联数组中搜索特定值,php,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 $
$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>';
}
但它什么也没找到。我找不到在双作用域数组中使用此函数的方法。你们知道我怎么用吗?或者,是否有另一种方法不涉及再次访问数据库或在整个阵列上运行循环
PS:我还尝试在数组中使用
检测值,但没有找到任何结果。$rows
在您的情况下将是多维数组<代码>数组搜索
仅循环第一个维度-这就是代码无法工作的原因
可以使用获取指定列的值
$column = array_map(function($element){return $element['time_stamp'];}, $rows);
对于PHP5.5+,可以使用array\u column
然后您可以使用自己的代码
$sum_a = array_search(date('Y-m-d', $rows[$j]['time_stamp'])." 00:00:00", $column);
为什么不在查询中添加一个where子句,而不是为我的案例添加一个没有帮助的where子句,因为我正在执行一个循环来覆盖所有的值,在这个循环中,我需要访问一个特定的前一个值。这很令人困惑,我能想到的唯一答案是重新访问数据库,然后在循环中进行检查。无论如何,你不能在多维上使用数组搜索,它应该在一个平面上工作。如果你在循环过程中不能得到值,那么使用一个单独的函数来查询数据库中的特定值也不错。不必困惑:-)好吧,你刚才给了我一个想法。干杯
$sum_a = array_search(date('Y-m-d', $rows[$j]['time_stamp'])." 00:00:00", $column);