$s = $conn->prepare($q);
$s->execute([$tagIdValue]);
$d = $s->fetchAll();
return $d;
function x($d) {
foreach ($d as $row) {
$val = $row["id"];
$cont = trimContent($row);
return $row;
}
}
i有一个查询,该查询返回表中的所有值以及一个将其转换为关联数组的函数。但是只获取数组的第一行
因为您使用循环内的return,所以它只取第一个值并将其返回。
$s = $conn->prepare($q);
$s->execute([$tagIdValue]);
$d = $s->fetchAll();
return $d;
function x($d) {
$arr =[]
foreach ($d as $row) {
$val = $row["id"];
$cont = trimContent($row);
array_push($arr, $val)
}
return $arr;
}
将您的返回值置于循环之外,因此只有它会返回第一个循环
function x($d) {
foreach ($d as $row) {
$val = $row["id"];
$cont = trimContent($row);
return $row;
}
}
因为,您正在循环中返回结果集。
因此,仅第一行从循环中返回。
因为,在第一次迭代中,遇到了return
语句,因此该函数将返回并且控制权将退出该函数。
并且下一次迭代不会遍历结果集。
我们需要在循环前创建一个数组,
将结果追加到该数组
并返回数组。
更正的代码:
$s = $conn->prepare($q);
$s->execute([$tagIdValue]);
$d = $s->fetchAll();
return $d;
function x($d) {
$array = array();
foreach ($d as $row) {
$val = $row["id"];
$cont = trimContent($row);
$array[] = $row;
}
return $array;
}
而不是在循环内编写返回,而是使用数组推入或数组移位功能替换该行。
循环结束后,返回从array_push / array_shift获得的最终结果。
您需要返回循环之外:
$s = $conn->prepare($q);
$s->execute([$tagIdValue]);
$d = $s->fetchAll();
return $d;
function x($d) {
$arr =array();
foreach ($d as $k=> $row) {
$val = $row["id"];
$cont = trimContent($row);
$arr[$k] = $row;
}
return $arr;
}
因为,您正在循环中返回结果集。
因此,仅第一行从循环中返回。
因为,在第一次迭代中,遇到了return
语句,因此该函数将返回并且控制权将退出该函数。
并且下一次迭代不会遍历结果集。
我们需要在循环前创建一个数组,
将结果追加到该数组
并返回数组。
更正的代码:
$s = $conn->prepare($q);
$s->execute([$tagIdValue]);
$d = $s->fetchAll();
return $d;
function x($d) {
$array = array();
foreach ($d as $row) {
$val = $row["id"];
$cont = trimContent($row);
$array[] = $row;
}
return $array;
}
而不是在循环内编写返回,而是使用数组推入或数组移位功能替换该行。
循环结束后,返回从array_push / array_shift获得的最终结果。