用foreach写多维数组

时间:2011-04-06 21:09:58

标签: php arrays foreach

我正在尝试将一些值写入多维数组,但只添加了最后一个。这是我的代码:

        $test =array();
        foreach($key as $val):
            $test = array('value1'=>$val->prop1,'value2' => $val->prop1);
        endforeach;

我的代码中的错误在哪里?

编辑:这将在php中完成。

3 个答案:

答案 0 :(得分:5)

你应该这样做:

 $test =array();
        foreach($key as $val):
            $test[] = array('value1'=>$val->prop1,'value2' => $val->prop1);
        endforeach;

卷曲括号表示要插入的位置,例如:

$test[2] = array('value1'=>$val->prop1,'value2' => $val->prop1);

始终插入第三个位置(第三个位置,因为它从零开始)

使用空括号时,如第一个示例所示,php在数组末尾添加新项目(追加)

答案 1 :(得分:2)

我不知道用什么语言,但我猜是

$test = array('value1'=>$val->prop1,'value2' => $val->prop1);

每次都分配一个新数组。

答案 2 :(得分:1)

使用$arr[]将新值附加到$arr的末尾:

$test = array();
foreach ($key as $val):
    $test[] = array('value1' => $val->prop1, 'value2' => $val->prop1);
endforeach;