/**
* 1、写函数创建长度为10的数组。数组中的元素为递增的奇数。首项为1。
*/
$ary = range(1, 10);
//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 )
print_r($ary);
/**
* 2、创建长度为10的数组,数组中的元素为递增的等比数,比值为3。首项为1
*/
function myfun($n){
return pow(3, $n-1);
}
$ary = range(1, 10);
$result = array_map(‘myfun‘,$ary);
echo ‘
‘;
//Array ( [0] => 1 [1] => 3 [2] => 9 [3] => 27 [4] => 81 [5] => 243 [6] => 729 [7] => 2187 [8] => 6561 [9] => 19683 )
print_r($result);
/**
* 3、求数组中最大数所在的下标;
* $arr = array(1,5,67,8,4,3,45,6,887,2);
*/
$arr = array(1,5,67,8,4,3,45,6,887,2);
$max = $arr[0];//假设第一个数是最大的
$index = 0;//记录最大数的key值,即下标
foreach ($arr AS $key=>$val) {
if ($max < $val) {
$max = $val;
$index = $key;
}
}
//最大数是:887,其下标是:8
echo ‘
最大数是:‘.$max . ‘,其下标是:‘ . $index;
/* $mval = max($arr);
echo ‘
‘;
print_r(array_search($mval, $arr)); */
/**
* 4、创建一个长度为10的数组,数组中的元素满足斐波拉齐数列的规律;
*/
$arr = array(1,1);
for ($i=2; $i<10; $i++) {
$arr[] = $arr[$i-1]+$arr[$i-2];
}
echo ‘
‘;
//Array ( [0] => 1 [1] => 1 [2] => 2 [3] => 3 [4] => 5 [5] => 8 [6] => 13 [7] => 21 [8] => 34 [9] => 55 )
print_r($arr);
/**
* 5、计算数组中最大数和最小数的差;
*/
$arr = array(1,5,67,8,4,3,45,6,887,2);
/*系统函数简单实现
*
$minv = min($arr);
$maxv = max($arr);
echo ‘
‘;
echo ‘最大数是:‘ . $maxv .‘,最小数是:‘.$minv.‘,差是:‘.($maxv-$minv);
*/
/*不使用系统函数实现*/
$max = $arr[0];//假设第一个数是最大的
$min = $arr[0];//假设第一个数也是最小的
foreach ($arr AS $key=>$val) {
if ($max < $val) {
$max = $val;
} elseif ($min > $val) {
$min = $val;
}
}
echo