PHP实现向不同数组键推送相同数据的技术咨询
把相同PHP数组数据推送到不同键的解决方案
嘿,我来帮你搞定这个问题~针对你给出的购物车数组,要把相同数据推送到不同键里,分几种常见场景给你具体的实现方案:
场景1:把整个现有数组分支复制到新的顶级键
如果你想把$cart['c']里的所有商品数据,完整复制到$cart下的其他键(比如'course_group1'、'course_group2'),直接赋值就可以实现:
<?php $cart = array( 'c' => array( array( 'Cart' => array('course_type_quantity' => 3), 'c' => array( 'id' => 2152, 'name' => 'Product1', 'duration' => 5, 'image' => 'IMG-2152.png', 'exams' => '606,652', 'exam' => 0 ) ), array( 'Cart' => array('course_type_quantity' => 3), 'c' => array( 'id' => 2152, 'name' => 'Product2', 'duration' => 5, 'image' => 'IMG-2153.png', 'exams' => '607,653', 'exam' => 0 ) ) ) ); // 直接复制到新键(浅拷贝,修改原数据会同步影响新键) $cart['course_group1'] = $cart['c']; $cart['course_group2'] = $cart['c']; // 如果需要完全独立的深拷贝(修改原数据不影响新键),可以用序列化反序列化的方式 $cart['course_group3'] = unserialize(serialize($cart['c'])); $cart['course_group4'] = json_decode(json_encode($cart['c']), true); ?>
场景2:给每个商品子项新增不同键,赋值相同内容
如果要给每个购物车商品项,添加不同的键但对应相同的值(比如统一添加标签、状态),可以用循环遍历实现:
<?php // 遍历每个购物车商品项,添加不同键并赋值相同内容 foreach ($cart['c'] as &$item) { // 新增两个不同的键,值都是'featured' $item['product_tag'] = 'featured'; $item['item_status'] = 'featured'; // 也可以把某个现有字段的值同步到新键 $item['display_name'] = $item['c']['name']; $item['product_title'] = $item['c']['name']; } unset($item); // 解除引用,避免后续修改数组时出现意外问题 ?>
场景3:批量生成多个键,每个键对应相同的单条数据
如果要把某一条商品数据,推送到多个不同的键下(比如把第一个商品复制到多个分组):
<?php // 获取第一条商品数据 $target_item = $cart['c'][0]; // 推送到不同的键 $cart['single_item_group1'] = $target_item; $cart['single_item_group2'] = $target_item; // 同样如果需要深拷贝,用序列化反序列化 $cart['single_item_group3'] = unserialize(serialize($target_item)); ?>
内容的提问来源于stack exchange,提问作者Gyandeep Sharma
相关产品推荐
相关产品推荐

