[英]foreach loop only outputs the last element from array
我做了一个选择陈述,其中有多个输出。
但是当我尝试返回时,它只会重现最后一个。 这是我的代码...
$stmt->execute();
$row = $stmt->fetchAll();
$result = [];
foreach ($row as $fullName => $type) {
$result['fullName'] = $type['name'] . ' ' .$type['lastname'];
$result['class_type'] = $type['typ'];
var_dump($result['fullName']);
}
return $result;
我的var-dump返回4个结果,但是我的返回仅返回var dump中的最后一个结果。
我在这里做错了什么?
如果您正确构建查询,则无需foreach
:
SELECT CONCAT(name, " ", lastname) AS fullName, typ AS class_type FROM table_name
然后只需获取所有行并返回它们:
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
您正在代码中重写值。 您需要将每个结果推送到数组。 请参阅下面的代码以供参考。
$stmt->execute();
$row = $stmt->fetchAll();
$result = [ ];
foreach ($row as $fullName => $type) {
$result[] = [
'fullName' => $type['name'] . ' ' .$type['lastname'],
'class_type' => $type['typ'] ];
// var_dump($result['fullName']);
}
return $result;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.