返回foreach循环内的所有数组

时间:2018-05-17 01:44:12

标签: php

如何在foreach循环中返回所有数组值。返回工作正常,没有错误,但只有一个记录。如果我在数据库中有10条记录,它应该是所有记录。我错过了这段代码?谢谢你的帮助。

PHP

function myfunction(){
    $query ="SELECT * from tbl_data";
    $stmt = $this->getConnection()->prepare($query);
    $stmt->execute();

    foreach ($stmt->fetchAll() as $value) {

        //custom value
        $customval = 1;

        $array = array([
            "ID"                => $value['ID'],
            "name"              => $value['name'],
            "staus"             => $value['status'],
            "customval"         => $customval,
        ]);
    }

    return $array;
}

3 个答案:

答案 0 :(得分:1)

您在每次迭代时分配$ array,覆盖之前的值。

也许你想创建一个数组数组:

    $array = array();
    foreach ($stmt->fetchAll() as $value) {
       //custom value
       $customval = 1;

       array_push($array, array([
          "ID"                => $value['ID'],
          "name"              => $value['name'],
          "staus"             => $value['status'],
          "customval"         => $customval,
       ]));
    }
    return $array;

答案 1 :(得分:1)

您目前实际上只是覆盖了$ array,您需要将新数据推送到它。

$array = array();
foreach ($stmt->fetchAll() as $value) {

    //custom value
    $customval = 1;

    $array[] = [
        "ID"                => $value['ID'],
        "name"              => $value['name'],
        "staus"             => $value['status'],
        "customval"         => $customval,
    ];
}

return $myArray;

答案 2 :(得分:-1)

您只返回一个值,因为每次都会覆盖数组的值。

您需要在每次循环迭代时推送新值。

$myArray = array();
foreach ($stmt->fetchAll() as $value) {

    //custom value
    $customval = 1;

    array_push($myArray, array([
        "ID"                => $value['ID'],
        "name"              => $value['name'],
        "staus"             => $value['status'],
        "customval"         => $customval,
    ]));
}

return $myArray;

这将返回一个数组数组。