我希望我已經undestood以及你想要什麼:
你的陣列:
$array1 = array(2, 23, 7);
$array2 = array(2, 21, 7);
$Mutt = array($L, $P, $O, $array1);
$Jeff = array($L, $P, $O, $array2);
創建一個新的數組$people
其中包含$Mutt
和$Jeff
(按引用傳遞)。
$people=array(&$Mutt,&$Jeff);
創建函數findMaxIndex
,它返回它$people[that index]
是在我們想要的位置最大值,數組的索引。
它的參數是:
$arr
,其中包含了我們要比較的陣列的陣列(在這種情況下,$people
)
$pos1
和$pos2
,我們要比較 這是索引
所以...我們將比較
$arr[0][$pos1][$pos2]
$arr[1][$pos1][$pos2]
- ...
$arr[count($arr)-1][$pos1][$pos2]
此功能的工作原理是這樣的:
- 它創建陣列
$max
,wher e $max[0]
是具有最大值的$ arr 的索引(在我們檢查的數組中,直到 時刻),並且$max[1]
是該值。
- 它通過所有
$arr
- 迭代如果發現電流值(
$arr[$i][$pos1][$pos2]
)比最大值大 ,$max
更新,並且成爲 array($i,$arr[$i][$pos1][$pos2])
。
- 最後,它返回
$max[0]
,這是 $people[that index]
是我們想要的最大值在位置 位置的索引。
的功能是:
function findMaxIndex($arr,$pos1,$pos2){
$max=array(0,$arr[0][$pos1][$pos2]);
for($i=1;$i<count($arr);$i++){
if($arr[$i][$pos1][$pos2]>$max[1]){
$max=array($i,$arr[$i][$pos1][$pos2]);
}
}
return $max[0];
}
然後我們調用函數...
$maxIndex=findMaxIndex($people,3,1);
...賦予0
,所以用最大值陣列是$people[0]
($Mutt
)最後,我們增加該數組:
$people[$maxIndex][1]++;
$Mutt
和$Jeff
也被修改,因爲我們通過引用傳遞它們。
總之,
$array1 = array(2, 23, 7);
$array2 = array(2, 21, 7);
$Mutt = array($L, $P, $O, $array1);
$Jeff = array($L, $P, $O, $array2);
$people=array(&$Mutt,&$Jeff);
function findMaxIndex($arr,$pos1,$pos2){
$max=array(0,$arr[0][$pos1][$pos2]);
for($i=1;$i<count($arr);$i++){
if($arr[$i][$pos1][$pos2]>$max[1]){
$max=array($i,$arr[$i][$pos1][$pos2]);
}
}
return $max[0];
}
$maxIndex=findMaxIndex($people,3,1);//gives `0` -> Max is `$people[0]`
$people[$maxIndex][1]++;
==================================== ==========
如果你想在相同的情況下多指標(以粗體顯示):
你的陣列:
$array1 = array(2, 23, 7);
$array2 = array(2, 21, 7);
$Mutt = array($L, $P, $O, $array1);
$Jeff = array($L, $P, $O, $array2);
創建一個新的陣列$people
這包含$Mutt
和$Jeff
$people=array(&$Mutt,&$Jeff);
創建函數findMaxIndex
,它返回包含這$people[that index]
是在我們想要的位置最大值數組索引數組。
它的參數是:
$arr
,其中包含了我們要比較的陣列的陣列(在這種情況下,$people
)
$pos1
和$pos2
,我們要比較 這是索引
所以......我們將比較
$arr[0][$pos1][$pos2]
$arr[1][$pos1][$pos2]
- ...
$arr[count($arr)-1][$pos1][$pos2]
此功能的工作原理是這樣的:
- 它創建陣列
$max
,其中$max[0]
是包含索引數組 of $ arr with the maxi媽媽值(在我們檢查的數組中,直到 時刻),以及$max[1]
是那個值。
- 它通過所有
$arr
- 迭代如果發現電流值(
$arr[$i][$pos1][$pos2]
)比最大值大 ,$max
更新,並且成爲 array(array($i),$arr[$i][$pos1][$pos2])
。
- 如果沒有,並且如果它發現電流值(
$arr[$i][$pos1][$pos2]
)等於最大值,$max[0]
被更新並且$i
被推入它。
- 最後,它返回
$max[0]
,它是包含索引的數組,其中 $people[that index]
是我們想要的最大值位於 位置的數組。
功能是:
function findMaxIndex($arr,$pos1,$pos2){
$max=array(array(0),$arr[0][$pos1][$pos2]);
for($i=1;$i<count($arr);$i++){
$current=$arr[$i][$pos1][$pos2];
if($current>$max[1]){
$max=array(array($i),$current);
}else if($current==$max[1]){
array_push($max[0],$i);
}
}
return $max[0];
}
然後我們調用函數...
$maxIndex=findMaxIndex($people,3,0);
...這給array(0,1)
,因此與最大值陣列$people[0]
($Mutt
)和$people[1]
($Jeff
)。
最後,我們增加了數組:
for($i=0;$i<count($maxIndex);$i++){
$people[$maxIndex[$i]][1]++;
}
$Mutt
和$Jeff
被修改過,因爲我們按引用傳遞它們。
總之,
$array1 = array(2, 23, 7);
$array2 = array(2, 21, 7);
$Mutt = array($L, $P, $O, $array1);
$Jeff = array($L, $P, $O, $array2);
$people=array(&$Mutt,&$Jeff);
function findMaxIndex($arr,$pos1,$pos2){
$max=array(array(0),$arr[0][$pos1][$pos2]);
for($i=1;$i<count($arr);$i++){
$current=$arr[$i][$pos1][$pos2];
if($current>$max[1]){
$max=array(array($i),$current);
}else if($current==$max[1]){
array_push($max[0],$i);
}
}
return $max[0];
}
$maxIndex=findMaxIndex($people,3,0);//gives `array(0,1)` -> Tie between `$people[0]` and `$people[1]`
for($i=0;$i<count($maxIndex);$i++){
$people[$maxIndex[$i]][1]++;
}
WUT?所有那些(嚴重命名的)變量來自哪裏? – PeeHaa 2012-08-12 19:14:07
我知道,不建議使用一個音節變量,但它們代表我的作品中以'L''P'和'O'...以及Mutt和Jeff爲對象的對象。 – 72Monkeys 2012-08-13 01:04:57