PHP - 如何安排数组值,重置它的键并用0索引启动键?

时间:2017-01-26 04:30:47

标签: php arrays arraylist

我正在我的一个项目中处理购物车功能。我们使用的是Laravel 5.3,购物车项目作为数组存储在Laravel会话中。因此,如果我的购物车中有3件商品( add_to_cart Laravel会话),它看起来像这样:

array:3 [▼
        0 => array:6 [▼
       "sku" => "brs000500"
       "price" => "500"
       "quantity" => "1"
       "brand_id" => "1"
       "brand_name" => "Baskin Robbins"
       "brand_img" => "http://s3.giftcardsindia.in/2015/06/01/original-556c659cc05cf.jpg"
       ]
       1 => array:6 [▼
       "sku" => "fab001000"
       "price" => "1000"
       "quantity" => "1"
       "brand_id" => "6"
       "brand_name" => "Fabindia"
       "brand_img" =>"http://s3.giftcardsindia.in/2015/06/01/original-556c64882baa7.jpg"
       ]
       2 => array:6 [▼
      "sku" => "tnq010000"
      "price" => "10000"
      "quantity" => "1"
      "brand_id" => "46"
      "brand_name" => "Tanishq"
      "brand_img" => "http://s3.giftcardsindia.in/2015/06/01/original-556c47dd2ca85.jpg"
      ]
]

现在我使用数组键(索引)开发了从购物车功能中删除项目。因此,当用户点击任何项目将其从购物车中删除时,我将该产品数组的密钥发送到控制器功能并使用未设置数组功能从会话中删除整个特定键的数组。

从上面的示例中我们假设我已经删除了 0的产品,之后我得到了如下数组:

array:1 [▼
   0 => array:2 [▼
      1 => array:6 [▼
      "sku" => "fab001000"
      "price" => "1000"
      "quantity" => "1"
      "brand_id" => "6"
      "brand_name" => "Fabindia"
      "brand_img" => "http://s3.giftcardsindia.in/2015/06/01/original-      556c64882baa7.jpg"
      ]
     2 => array:6 [▼
     "sku" => "tnq010000"
     "price" => "10000"
     "quantity" => "1"
     "brand_id" => "46"
     "brand_name" => "Tanishq"
     "brand_img" => "http://s3.giftcardsindia.in/2015/06/01/original-556c47dd2ca85.jpg"
     ]
  ]
]

如果显示此结构肯定与我在购物车中存储物品时的结构不同。

所以我想要的是删除第一个为0,对于 1和2将在 0之外,结果数组将以 0开始。

简而言之,我需要像我在这里使用的第一个例子那样的数组结构。

如何安排这个数组结构?

2 个答案:

答案 0 :(得分:0)

array_splice为你做这件事:)

array_splice($cartArray, $key, 1);

答案 1 :(得分:0)

来自laravel docs:

  

<强> array_except

     

array_except方法从中删除给定的键/值对   阵列。

     

$ array = array_except($ array,array('keys','to','remove'));

在你的情况下,你可以这样做:

array_except($array, array(0));

删除带0键的子数组