繁体   English   中英

foreach循环仅输出数组中的最后一个元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM