Php遍历json数组修改一个特殊值并返回数组
所以我有一个JSON数组,数组中有一些内容。每个项目都有产品id和价格,我的目标是循环这个数组,并用修改后的产品价格修改产品价格和返回数组 下面是结果中的json数组片段/Php遍历json数组修改一个特殊值并返回数组,php,arrays,json,loops,Php,Arrays,Json,Loops,所以我有一个JSON数组,数组中有一些内容。每个项目都有产品id和价格,我的目标是循环这个数组,并用修改后的产品价格修改产品价格和返回数组 下面是结果中的json数组片段/ "variation_combination_price" => array:4 [▼ 0 => array:10 [▼ "id" => 1 "product_id" => 1364 "cost_price" => 600 "promo_price" => 900 "p
"variation_combination_price" => array:4 [▼
0 => array:10 [▼
"id" => 1
"product_id" => 1364
"cost_price" => 600
"promo_price" => 900
"price" => 900
"combination_array" => array:2 [▼
0 => array:8 [▶]
1 => array:8 [▶]
]
"combination_array_string" => "{"1":"3","2":"4"}"
"quantity" => 10000
"status" => 1
"DOCUMENTATION" => array:2 [▶]
]
1 => array:10 [▶]
2 => array:10 [▶]
3 => array:10 [▶]
因此,上面的结果是原始响应。如你所见,我们有4个项目,目的是循环通过他们,修改价格和返回相同的4个项目
foreach ($product_data['variation_combination_price'] as
$variation_combination_price){
$variation_combination_price['price'] = 666;
$product_data['variation_combination_price'] =
$variation_combination_price;
}
dd($product_data['variation_combination_price']);
我的结果应该与修改price的数组相同
"variation_combination_price" => array:4 [▼
0 => array:10 [▼
"id" => 1
"product_id" => 1364
"cost_price" => 600
"promo_price" => 900
"price" => 666
"combination_array" => array:2 [▼
0 => array:8 [▶]
1 => array:8 [▶]
]
"combination_array_string" => "{"1":"3","2":"4"}"
"quantity" => 10000
"status" => 1
"DOCUMENTATION" => array:2 [▶]
]
1 => array:10 [▶]
2 => array:10 [▶]
3 => array:10 [▶]
您没有通过引用进行循环。
在循环中所做的任何更改都不会更改数组的值。
为此,您需要添加一个
&
foreach ($product_data['variation_combination_price'] as &$variation_combination_price){
$variation_combination_price['price'] = 666;
}
只需记住在循环之后取消设置变量即可
unset($variation_combination_price);
确保在循环完成后不会更改数组数据。如果您有一个包含数据的Json,那么发布它而不是打印数组是一个友好的操作。我们可以使用Json,数组的打印是“无用的”