【问题标题】:What is the best practice for sum array with same key具有相同键的 sum 数组的最佳实践是什么
【发布时间】:2013-10-24 16:03:30
【问题描述】:

例如:

$output = array();
foreach($data as $row) {
    if(!isset($output[$row->foo][$row->bar])) {
        $output[$row->foo][$row->bar] = 0;
    }        
    $output[$row->foo][$row->bar] += $row->value;
}

可以使用一些对象来跳过带有if(!isset(...))的部分吗?

我尝试了重载ArrayObjectoffsetGet方法,但是引用有问题,see the php forum

【问题讨论】:

    标签: php arrays isset arrayobject


    【解决方案1】:

    您实际上可以将整个 if 块排除在外。一个比较简单的例子:

    <?
    $x[15][12] += 5;
    var_dump($x);
    ?>
    

    将转储

    array(1) {
      [15]=>
      array(1) {
        [12]=>
        int(5)
      }
    }
    

    根据您的 php.ini 设置,您可能会收到有关缺少索引的警告,但您可以在行首suppress the warning with an @

    【讨论】:

    • 谢谢,但我正在寻找一种干净的方式,不会忽略警告
    猜你喜欢
    • 2018-03-20
    • 2021-01-29
    • 2018-12-22
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多