为什么我在下面的代码中只得到数组 "row" 中的第一行值。我需要与查询对应的所有值
why am i only getting the first row value in array "row" in the below code. i need all the values corresponding to the query
$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;
}
}
我有一个查询,其中 returns table 中的所有值和一个将其转换为关联数组的函数。但只得到数组中的第一行
因为你在循环中使用 return,它只取第一个值和 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;
}
您需要 return 循环外 :
$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 放在循环之外,因此只有它 return 只是第一个循环
function x($d) {
foreach ($d as $row) {
$val = $row["id"];
$cont = trimContent($row);
return $row;
}
}
因为,您正在return循环中获取结果集。
因此,只有第一行是从循环中 return 编辑的。
由于在第一次迭代中遇到了 return
语句,因此,该函数将 return 并且控制将退出该函数。
并且下一次迭代不会遍历结果集。
我们需要在循环之前创建一个数组,
将结果附加到该数组
和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;
}
不要在循环中编写 return,而是用数组推送或数组移位函数替换该行。
循环结束后 return 从 array_push/array_shift 获得的最终结果。
$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;
}
}
我有一个查询,其中 returns table 中的所有值和一个将其转换为关联数组的函数。但只得到数组中的第一行
因为你在循环中使用 return,它只取第一个值和 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;
}
您需要 return 循环外 :
$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 放在循环之外,因此只有它 return 只是第一个循环
function x($d) {
foreach ($d as $row) {
$val = $row["id"];
$cont = trimContent($row);
return $row;
}
}
因为,您正在return循环中获取结果集。
因此,只有第一行是从循环中 return 编辑的。
由于在第一次迭代中遇到了 return
语句,因此,该函数将 return 并且控制将退出该函数。
并且下一次迭代不会遍历结果集。
我们需要在循环之前创建一个数组,
将结果附加到该数组
和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;
}
不要在循环中编写 return,而是用数组推送或数组移位函数替换该行。
循环结束后 return 从 array_push/array_shift 获得的最终结果。