一維數組中,$arr = array(1,5,23,3);
找出最大值,體現出個思想
假定 最大值就是第一個$arr[0];
然後循環...取出每一個值去比較即可
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<?php
//這一行php的作用,跟上一行meta的作用一樣:告訴瀏覽器,請用utf8顯示本網頁
header("Content-Type:text/html;charset=UTF-8");
//求一個一維數組的平均值:
$a = array(1, 11, 111, 1111);
$len = count($a); //長度
$sum = 0; //用於總和
$c = 0; //用於存儲數組的個數
for($i = 0; $i<$len; ++$i){
$sum += $a[$i]; //累加思想
++$c; //計數思想
}
echo "<br />平均值爲:" . ($sum/$c);
//求一個二維數組的平均值:
$dd = array(
array(1, 11, 111),
array(2, 22, 222, 2222),
array(3, 33, 333, 3333,33333)
);
$len = count($dd);//長度,這裏是3
$sum = 0; //用於總和
$c = 0; //用於存儲數組的個數
for($i = 0; $i < $len; ++$i){
$temp = $dd[$i]; //這是一個一維數組!
$len2 = count($temp);//該一維數組的長度
for($k = 0; $k < $len2; ++$k){
$sum += $temp[$k];//累加
++$c; //計數
}
}
echo "<br />平均值爲:" . ($sum/$c);
//求一個一維數組的最大值,及其對應下標:
$arr3 = array(13, 8, 5, 11, 22, 2);
$max = $arr3[0]; //將第一項放入$max中,
//並試圖使用該變量來存儲最終的“最大值”
$pos = 0;//第一個下標,並試圖使用該變量來存儲最終的“最大值所在下標”
$len = count($arr3); //長度
for($i = 0; $i < $len; ++$i){
if($arr3[$i] > $max){
$max = $arr3[$i];
$pos = $i;
}
}
echo "<br />最大值爲:" . ($max) . ",其下標爲:$pos";
//求交換一個一維數組的最大值和最小值的位置:
//先看交換原理:
$a = 3;
$b = 4;
$t = $a;
$a = $b;
$b = $t;
//然後,才進行數組最大值和最小值的的交換
//其它前提是:知道最大值最小值在哪裏:
$arr3 = array(13, 38, 5, 11, 22, 2);
echo "<br />交換之前:"; print_r($arr3);
$max = $arr3[0]; //將第一項放入$max中,
//並試圖使用該變量來存儲最終的“最大值”
$pos = 0;//第一個下標,並試圖使用該變量來存儲最終的“最大值所在下標”
$min = $arr3[0]; //同理!
$pos2 = 0; //同理
$len = count($arr3); //長度
for($i = 0; $i < $len; ++$i){
if($arr3[$i] > $max){
$max = $arr3[$i];
$pos = $i;
}
if($arr3[$i] < $min){
$min = $arr3[$i];
$pos2 = $i;
}
}
echo "<br />最大值爲:" . ($max) . ",其下標爲:$pos";
echo "<br />最小值爲:" . ($min) . ",其下標爲:$pos2";
//然後纔開始交換:
$t = $arr3[$pos]; //$arr3[$pos]就是數組的最大值的單元
$arr3[$pos] = $arr3[$pos2];//$arr3[$pos2]就是數組的最小值的單元
$arr3[$pos2] = $t;
echo "<br />交換之後:"; print_r($arr3);