在PHP中查找子数组匹配 - php

我有一个格式的数组:

array (
   '1' => array (
      'id' => '2',
      'qty' => '4'
   ),
   '2' => array (
      'id' => '1',
      'qty' => '1'
   ),
   '3' => array (
      'id' => '2',
      'qty' => '3'
   ),
   '4' => array (
      'id' => '4',
      'qty' => '6'
   )
);

并希望找到列“ id”的所有重复项,并将其合并为一个(将“ qty”的值相加在一起)。

有没有比两个foreach更好的方法了? -对我来说似乎太暴力了。

参考方案

不漂亮,但是我认为它可以做(编辑以保持格式):

$id = array();
foreach($array as $v) {
    if( $id[$v['id']] ) {
        $id[$v['id']]['qty'] += $v['qty'];
    } else {
        $id[$v['id']] = $v;
    }
}

// Optional reset keys
// $id = array_values($id);
// Optional sort keys in ascending order
// ksort($id);

print_r($id);

给出:

Array
(
    [2] => Array
        (
            [id] => 2
            [qty] => 7
        )
    [1] => Array
        (
            [id] => 1
            [qty] => 1
        )
    [4] => Array
        (
            [id] => 4
            [qty] => 6
        )
)

验证IBAN PHP - php

在设计新平台时,我们尝试集成IBAN编号。我们必须确保IBAN已经过验证,并且存储在数据库中的IBAN始终正确。那么验证数字的正确方法是什么? 参考方案 正如我在其他问题中解释的逻辑一样,我尝试自己创建一个函数。根据Wikipedia文章中解释的逻辑,在下面找到合适的功能。国家特定验证。它适合吗http://en.wikipedia.org/wiki/Int…

PHP:对数组排序 - php

请如何排序以下数组Array ( 'ben' => 1.0, 'ken' => 2.0, 'sam' => 1.5 ) 至Array ( 'ken' => 2.0, 'sam' => 1.5, 'ben' =&…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…