如何在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;
}
答案 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;
这将返回一个数组数组。