在array_values上使用Implode数组似乎是空的

时间:2014-02-19 09:20:53

标签: php foreach implode

非常感谢一些帮助:

'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));

4 个答案:

答案 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;

Demo