php练习题

1. 写一段代码将一个数组里不是奇数的数字过滤掉

$arr = array(1,2,3,4,5,6,7,8,9);
$res=array();
for ($i=0; $i < count($arr); $i++) { 
	if($arr[$i]%2!=0){
		$res[]=$arr[$i];
	}
}
print_r($res);

2.不计算数组的长度,使用while循环输出数组里的每一个值

$arr = array(1,2,3,4,5,6,7,8,9);
while(list($key,$value) = each($arr)){
echo "<dd>$value</dd>";
}

3.写一个对数组进行排序的函数(不可使用内置排序函数)

$res=array(23,45,21,3,4,89,11,20,10,6);
function maopao($res){
	$len=count($res);
	$tmp='';
	for ($i=1; $i < $len; $i++) { 
		for ($j=0; $j < $len-$i; $j++) { 
			
			if($res[$j]>$res[$j+1]){

				$tmp=$res[$j];
				$res[$j]=$res[$j+1];
				$res[$j+1]=$tmp;
			}
		}
	}
	return $res;
}
print_r(maopao($res));

4.写一个函数求一个数组中最大数的下标(可用内置函数)

$res=array(23,45,21,3,4,89,11,20,10,6);
echo array_search(max($res),$res);

5.写一个函数返回一个包含长度为n的斐波拉契数列(1,1,2,3,5,…,)

function feibo($n)
{
	if($n<=0)
	{
		return 0;
	}else if($n==1)
	{
		return 1;
	}else
	{
		return feibo($n-1)+feibo($n-2);
	}
}

for ($i=1; $i <= 10; $i++) { 
	
	echo feibo($i);
	echo "<br>";
}

6.写一个函数计算一个数组中最大值和最小值的差(至少用三种方法)

1)$max=max($arr);
  $min=min($arr);
  echo $num=$max-$min;
2)sort($arr);
  $min=$arr[0];
  $max=$arr[count($arr)-1];
  echo $num=$max-$min;
3)$res=array(23,45,21,3,4,89,11,20,10,6);
  echo maopao($res);
  function maopao($res){
 	$len=count($res);
	$tmp='';
	for ($i=1; $i < $len; $i++) { 
		for ($j=0; $j < $len-$i; $j++) { 
			
			if($res[$j]>$res[$j+1]){

				$tmp=$res[$j];
				$res[$j]=$res[$j+1];
				$res[$j+1]=$tmp;
			}
		}
		$a=$i;
	}
	return $res[$a]-$res[0];
   }

7.写一个函数如果这个数组长度大与1,将数组的后半段移到数组的前半段

$res=array(1,2,3,4,5,6,7,8,9,10,12,23,34);

print_r(shu($res));

function shu($res){
	$num=floor(count($res)/2);

	$hou=array_slice($res,$num);
	$qian=array_slice($res,0,$num);

	$new=array_merge($hou,$qian);
	return $new;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值