在php中的关联多维数组中插入键值对


inserting key value pair in associate multidimensional array in php

我有一个名为$p_result的多维数组,它包含与产品相关的数据。现在我想使用for each或for循环向其中添加另一个键值元素(键为"o_id",值为4),但到目前为止我已经尝试过这个

foreach($p_result as $prod){
    $prod['o_id']=4;
}
print_r($p_result);

但它并没有将[oid]=>4添加到每个数组中。print_r($p_result)显示

Array ( 
    [0] => Array ( [p_id] => 7 [quantity] => 122 [unitPrice] => 3 [subTotal] => 366 ) 
    [1] => Array ( [p_id] => 8 [quantity] => 133 [unitPrice] => 5 [subTotal] => 665 ) 
    )   

用作&产品:

foreach($p_result as &$prod){
    $prod['o_id']=4;
}
print_r($p_result);

您可以使用按引用运算符&:来执行您想要的操作

foreach($p_result as &$prod) {
    $prod['o_id']=4;
}

引用运算符允许您访问父变量,因为您实际引用的是原始变量。

偶尔使用参考可能会有问题,在这种情况下,另一种选择是:

foreach($p_result as $index => $prod) {
    $p_result[$index]['o_id']=4;
}