Php 数组似乎为空,数组_值内爆

Php 数组似乎为空,数组_值内爆,php,foreach,implode,Php,Foreach,Implode,我们将非常感谢提供一些援助: “foreach”部分工作正常,echo的结果集工作正常;我一试内爆就失败了?谢谢大家! $ctr = 0; while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { $RespondentsResultSetArray[$ctr] = array( "Firstname" => $row['cnt_firstname'], "Lastname" =&

我们将非常感谢提供一些援助:

“foreach”部分工作正常,echo的结果集工作正常;我一试内爆就失败了?谢谢大家!

$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));
试试这个

implode(',',$RespondentsResultSetArray);

php内爆函数接受字符串数组。 您没有向它传递字符串数组

对于刚才回答的用户1844933,您的建议将传递一个数组内爆。出于同样的原因,这是行不通的

$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);
将创建一个字符串数组,然后可以将其内爆


由于您最近评论说希望将其保存到变量而不是回显它,所以我只是更改了示例代码的最后一行。我相信这将为您提供所需的正确间隔和分隔字符串。

您正在将一个数组数组传递给
内爆
函数。下面是您的代码的一点偏差,应该可以得到相同的结果:

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

另外,为了将来,请尝试为变量选择较小的名称,并使用小写字母作为变量名称和数组索引。

因为
$RespondentsResultSetArray
是多维数组,在echo之前使用
foreach
循环

$string = ""; 
foreach($RespondentsResultSetArray as $values)
{
echo implode(array_values($values),",");
$string= $string.",".implode(array_values($values),",");
}

$string=ltrim($string,",");
echo $string;

谢谢,在传递所需内容时提供任何可能的帮助,或者我应该使用类似于foreach的内爆以外的方法,因为我的最终目标是在变量中添加一个以逗号正确间隔的字符串。谢谢您的帮助和信息。谢谢您的建议和回答,这解决了我的问题!我只是对输出做了一些轻微的修改,使其看起来与foreach相同。