這可能是一個真正簡單的問題,但我正在尋找在特定多維數組上找到數據的最有效的內存方式。在多維數組上運行計算?
陣列的一個例子:
[0] => Array(
[fin] => 2
[calc] => 23.34
[pos] => 6665
)
[1] => Array(
[fin] => 1
[calc] => 25.14
[pos] => 4543
)
[2] => Array(
[fin] => 7
[calc] => 21.45
[pos] => 4665
)
我需要識別下面的事情的值的方法,包括:
- 的最大 '計算值'
- 的MIN '計算'
- 最大'pos'
- min'pos'
- (你得到的要點)
我能想到的,通過每個值手動循環和調整的整數。只有這樣,因此,例如:
function find_lowest_calc($arr) {
$int = null;
foreach($arr['calc'] as $value) {
if($int == null || $int > $value) {
$int = $value;
}
}
return $int;
}
等的方法的明顯缺點,這是我將不得不爲數組中的每個值創建一個新函數(或者至少實現一個參數來更改數組鍵),並且它會通過循環遍歷整個數組3次或更多次來減慢應用程序的速度,以獲取值。原始數組可能有超過一百個值。
我會假設將有一個內部函數來收集所有(例如)'calc'值到一個臨時單個數組中,所以我可以使用它的最大值函數。
任何想法?
丹
組裝中的代碼!那會非常有效率。 – 2011-04-09 16:43:19
忽略以前的評論。不能說關於內存效率,但你可以概括你的功能,像這樣'find($ arr,$ bool_min_or_max,$ key)' – 2011-04-09 16:48:04