数组在php中循环奇怪的行为

时间:2009-10-29 14:21:41

标签: php arrays

我有一个索引数组,我使用此代码

从关联数组生成
$index_arr = array();
foreach($assoc_arr as $key => $val ){
   $index_arr .= $val;
}

当我用print_r($index_arr);打印时,它工作正常。但是当我尝试用foreach打印它时,我收到错误“为foreach()提供的无效参数”

foreach($index_arr as $one){
   echo "one: $one<br />";
}

我很确定这是正确的语法,还是我在一天的这个时候太累了?

4 个答案:

答案 0 :(得分:5)

使用。=运算符将数组转换为字符串。你想使用:

$index_arr[] = $val;

追加到最后。

同样在这种特殊情况下,您可以这样做:

$index_arr = array_values($assoc_arr);

这正是你的循环所做的。

答案 1 :(得分:2)

需要这样:

$index_arr = array();
foreach($assoc_arr as $key => $val ){
   $index_arr[] = $val;
}

另外

foreach($index_arr as $key=>$data){
   echo "Key: ".$key." Data: ".$data."<br />";
}

答案 2 :(得分:2)

你做$index_arr .= $val; PHP做了一个字符串操作。您需要执行$index_arr[]=$val;

答案 3 :(得分:1)

$index_arr .= $val;

应该是

$index_arr[] = $val;