更新数组中的值()

时间:2011-11-30 17:04:57

标签: php arrays

例如,我使用这个数组:

  

数组(

[0] => Array
    (
        [id] => 39584
        [quantity] => 1
    )

[1] => Array
    (
        [id] => 39584
        [quantity] => 3
    )

[2] => Array
    (
        [id] => 39574
        [quantity] => 1
    )

[3] => Array
    (
        [id] => 39586
        [quantity] => 1
    )
     

我的问题是:如果“id”与之前介绍的类似,我如何更新“数量”?

示例:

  

数组(

[0] => Array
    (
        [id] => 39584
        [quantity] => 4
    )

[1] => Array
    (
        [id] => 39574
        [quantity] => 1
    )

[2] => Array
    (
        [id] => 39586
        [quantity] => 1
    )
     

4 个答案:

答案 0 :(得分:1)

如果您需要此表单中的数组,则必须进行搜索。

foreach ($array as $set)
{
    if ($set['id'] == $checkedId)
    {
        $set['quantity'] = $newQuantity;
        return;
    }
}

如果你可以改变数组,为什么不把id作为键?

$newArray = array();

foreach ($oldArray as $set)
{
    $newArray[$set['id']] = $set['quantity'];
}

现在,您可以使用$newArray[$checkedId]

访问数量

答案 1 :(得分:1)

你可以用一些foreach循环来做到这一点,或者你可以通过改变你的数组结构使你的生活变得更容易:

  Array (
    [39584] => 4
    [39574] => 1
  )

然后添加数量,就像:

一样简单
$main_array[$id] = $main_array[$id] + $new_array[$id];

答案 2 :(得分:1)

以下是解决方案:

$result = array();

foreach ($your_array as $sub_array) {
  if (empty($result[$sub_array['id']])) {
    $result[$sub_array['id']] = $sub_array;
  } else {
    $result[$sub_array['id']]['quantity'] += $sub_array['quantity'];
  }
}

这将按照“id”键对数组进行分组,并总结值

答案 3 :(得分:0)

每个数组都有一个位于父数组中的位置,所以如果你想要第一个数组,那么你可以调用它: $var[0][quantity]请注意,为什么你有多个具有相同ID的数组?