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

时间:2019-06-06 18:11:33

标签: php arrays pdo foreach

我做了一个选择语句,其中有多个输出。

但是当我尝试返回时,它只会重现最后一个。 这是我的代码...

$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中的最后一个结果。

我在这里做什么错了?

2 个答案:

答案 0 :(得分:1)

如果您正确构建查询,则无需foreach

SELECT CONCAT(name, " ", lastname) AS fullName, typ AS class_type FROM table_name

然后仅获取所有行并返回它们:

$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);

答案 1 :(得分:-1)

您正在重写代码中的值。您需要将每个结果推送到数组。请参阅下面的代码以供参考。

$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;