Php 用foreach写多维数组

Php 用foreach写多维数组,php,arrays,foreach,Php,Arrays,Foreach,我试图将一些值写入多维数组,但只添加最后一个值。这是我的代码: $test =array(); foreach($key as $val): $test = array('value1'=>$val->prop1,'value2' => $val->prop1); endforeach; 我的代码中的错误在哪里 编辑:这应该用php完成。我不知道是什么语言,但我猜是这样的 $test = array

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

        $test =array();
        foreach($key as $val):
            $test = array('value1'=>$val->prop1,'value2' => $val->prop1);
        endforeach;
我的代码中的错误在哪里


编辑:这应该用php完成。

我不知道是什么语言,但我猜是这样的

$test = array('value1'=>$val->prop1,'value2' => $val->prop1);
正在每次分配一个新数组。

您应该执行以下操作:

 $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会在数组末尾添加新项(appends)

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

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