2013-10-24 29 views
1

例如:什么是求和阵列的最佳实践与相同的密钥

$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

回答

0

你实际上可以只留下整个if块。一个比较简单的例子:

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

将倾

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

根据您的php.ini设置,你可能会得到一个关于失踪指标预警,但你可以suppress the warning with an @之初该线。

+0

谢谢,但我正在寻找一种干净的方式,不忽略警告 – leninzprahy

+0

@leninzprahy在这种情况下,你已经做到了。 – Dan