非常感谢一些帮助:
'foreach'部分完美运行,回声完美结果;一旦我尝试内爆它失败了吗?谢谢!
$ctr = 0;
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
$RespondentsResultSetArray[$ctr] = array(
"Firstname" => $row['cnt_firstname'],
"Lastname" => $row['cnt_lastname']
);
$ctr = $ctr + 1;
}
foreach ($RespondentsResultSetArray as $key) {
echo $key["Firstname"] . ' ' . $key["Lastname"] . ', ';
}
sqlsrv_free_stmt($stmt);
echo implode(', ',array_values($RespondentsResultSetArray));
答案 0 :(得分:1)
试试这个
implode(',',$RespondentsResultSetArray);
答案 1 :(得分:0)
php implode函数接受一个字符串数组。 你没有传递一个字符串数组。
对于刚回答的user1844933,您的建议将传递内爆数组。这不会出于同样的原因。
$RespondentsResultSetArray=array();
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
array_push($RespondentsResultSetArray,$row['cnt_firstname'].' '.$row['cnt_lastname']);
}
$saved_to_variable=implode(', '$RespondentsResultSetArray);
将创建一个你可以内爆的字符串数组
由于您最近评论过要将其保存到变量而不是回显它,我只是更改了示例代码的最后一行。我相信这会给你你想要的适当间隔和分隔的字符串。
答案 2 :(得分:0)
您正在将数组数组传递给implode
函数。这是您的代码的一点偏差,这应该会得到相同的结果:
$full_array = array();
foreach ($RespondentsResultSetArray as $key) {
echo $key["Firstname"] . ' ' . $key["Lastname"] . ', ';
array_push($full_array,$key["Firstname"]);
array_push($full_array,$key["Lastname"]);
}
echo implode(', ',$full_array);
此外,将来,尝试为变量选择较小的名称,并使用小写作为变量名和数组索引。
答案 3 :(得分:0)
因为$RespondentsResultSetArray
是多维数组,所以在echo
foreach
循环
$string = "";
foreach($RespondentsResultSetArray as $values)
{
echo implode(array_values($values),",");
$string= $string.",".implode(array_values($values),",");
}
$string=ltrim($string,",");
echo $string;