简体   繁体   English

如何在新数组中获取Php多维数组相同键的相同值的相关总数?

[英]How to get Php multidimensional array same key’s same value’s related total in new array?

  • Php multidimensional array same key's same value's related total in new array. PHP多维数组相同键的相同值在新数组中的相关总和。 I have an array of following mentioned. 我提到了以下内容。 i need new array as total qty of same item_id. 我需要新数组作为相同item_id的总数量。 anyone can help would be appreciate. 任何人都可以帮助将不胜感激。 My Original Array is as following 我的原始数组如下

Array
(
    [a] => Array
        (
            [item] => Array
            (
                [item_id] => 1
        )
        [qty] => 0
    ),
    [b] => Array
        (
            [item] => Array
            (
                [item_id] => 2
            )
            [qty] => 35
    ),
    [c] => Array
    (
            [item] => Array
            (
                [item_id] => 2
            ) 
           [qty] => 15
    ),
    [e] => Array
    (
            [item] => Array
            (
                [item_id] => 3
            ) 
            [qty] => 20
    ),

);
  • I want array Output like following : 我想要数组输出,如下所示:

     Array( [0] => Array ( [item_id] => 1, [item_total_qty] => 0, ) [1] => Array ( [item_id] => 2, [item_total_qty] => 50, ) [2] => Array ( [item_id] => 3, [item_total_qty] => 20, ) ); 

Simple foreach on your original table: 在原始表上的简单foreach:

$sorted = array();
foreach ($original as $item) {
    $id = $item['item']['item_id'];
    $sorted[$id]['item_total_qty'] = $sorted[$id] ? $sorted[$id] + $item['qty'] : item['qty'];
    $sorted[$id]['item_id'] = $id;
}
$sorted = array_values($sorted);

Hope it help 希望对你有帮助

$arrays = array(
    'a' => array(
        'item' => array(
            'item_id' => 1
        ),
        'qty' => 0
    ),
    'b' => array(
        'item' => array(
            'item_id' => 2
        ),
        'qty' => 35
    ),
    'c' => array(
        'item' => array(
            'item_id' => 2
        ),
        'qty' => 15
    ),
    'd' => array(
        'item' => array(
            'item_id' => 3
        ),
        'qty' => 20
    )
);

$result = array();

foreach ($arrays as $key => $array) {
    if (is_array($result) && !empty($result)) {
        foreach ($result as $key => $r) {
            if ($r['item_id'] ==   $array['item']['item_id']) {
                $result[$key]['item_total_qty'] += $array['qty'];
                 continue 2;
            }

        }

        $result[] = array(
                    'item_id' => $array['item']['item_id'],
                    'item_total_qty' => $array['qty']);

    } else {
        $result[] = array(
                    'item_id' => $array['item']['item_id'],
                    'item_total_qty' => $array['qty']);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 php 多维数组合并相同的键值 - php multidimensional array merge with same key and value 将数组键的值分配给同一数组PHP的另一个键 - Assign array key's value to another key of the same array PHP 如何一次在php中获得相同值的多维数组内键? - how to get multidimensional array inner key of same values in php at once? php循环遍历多维数组可以将相同的键/值组合到新的数组元素中 - php loop over multidimensional array can combine same key/value into new array element 如何从PHP中具有相同键的另一个数组向数组的键添加值? - How can I add a value to an array's key from another array with the same key in PHP? 我如何获得与第二个数组值相同的第一个数组键的值? - How can i get first array key's value which is same in second array value? php中的多维数组(具有相同的键不同的值)如何为键创建新名称? - Multidimensional array in php( have same key different values) how can I create a new name for the key? 如何在 php 中的多维数组中的其他键值之后首先回显相同的键值 - how to echo same key value first after other key value from multidimensional array in php 遍历多维PHP数组,在键相同的地方取平均值 - Iterating over multidimensional PHP array, averaging value where key is the same 将相同的键组合在一个数组中并在 php 中打印 - Combining same key's in an array and print it in php
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM