對於數組如比較關聯數組值的高效的方法:不使用的foreach
$array = array(
735 => array('name'=>'Alpha', 'num'=>1),
584 => array('name'=>'Beta', 'num'=>4),
857 => array('name'=>'Gamma', 'num'=>1),
982 => array('name'=>'Delta', 'num'=>2)
);
這將是用於過濾與的num
至少值元素的最佳方式。也就是說,在這種情況下,該解決方案將是以下數組:
array(
735 => array('name'=>'Alpha', 'num'=>1),
857 => array('name'=>'Gamma', 'num'=>1)
);
我知道,這可以通過foreach
環路和最小值的跟蹤做,但我希望會有一些數組函數可以完成這項工作。
我目前的做法是:
$num_values = array();
foreach($array as $id => $meta)
{
$num_values[] = $meta['num'];
}
$min_num_value = min($num_values);
$filtered_array = array();
foreach($array as $id => $meta)
{
if($meta['num'] == $min_num_value)
{
$filtered_array[$id] = $meta;
}
}
print_r($filtered_array);
,正如你所看到的,顯然不是去了解任務的最佳方式。
downvoter,小心解釋一下? – asprin