Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得Php多维数组相同的键’;s相同的值’;新阵列中的相关总数是多少? Php多维数组中相同键的相同值的相关总计 新阵列。我提到了一系列如下内容。我需要新的阵列 作为同一商品的总数量。任何人都可以帮助将不胜感激。 我的原始数组如下所示_Php_Arrays_Sorting - Fatal编程技术网

如何获得Php多维数组相同的键’;s相同的值’;新阵列中的相关总数是多少? Php多维数组中相同键的相同值的相关总计 新阵列。我提到了一系列如下内容。我需要新的阵列 作为同一商品的总数量。任何人都可以帮助将不胜感激。 我的原始数组如下所示

如何获得Php多维数组相同的键’;s相同的值’;新阵列中的相关总数是多少? Php多维数组中相同键的相同值的相关总计 新阵列。我提到了一系列如下内容。我需要新的阵列 作为同一商品的总数量。任何人都可以帮助将不胜感激。 我的原始数组如下所示,php,arrays,sorting,Php,Arrays,Sorting,我希望数组输出如下所示: Array( [0] => Array ( [item_id] => 1, [item_total_qty] => 0, ) [1] => Array ( [item_id] => 2, [item_total_qty] => 50,

我希望数组输出如下所示:

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:

$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);
希望能有所帮助

$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']);
    }
}

我想你应该使用递归函数来解决这个问题。我正在尝试我想要的是总数量的总和。。此数组将只提供商品id和数量。对不起,我建议您对其求和。我已经编辑了我的答案。它现在似乎能按你的要求工作。
$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']);
    }
}