$arr = array(0=>1,'aa'=>2, 3, 4);
foreach($arr as $key=> $val)
{
print_r($key =='aa' ? 5 : $val);
}
考查:类型转换。 因遍历数组第一次的时候,$key和aa的比较实际就是0和aa的比较,一个是int一个是string,这个时候会转换类型,将字符串转换为数字再与数字比较。所以0=='aa'就是0==0,所以为true,也就是输出5。
阶乘:
//递归
function fun($n){
if($n==1){
return $n;
}else{
return $n*fun($n-1);
}
}
$n=5;
echo $n."的阶乘是".fun($n);
echo "</br></br>";
//非递归
$num=10;
$sum=1;
for($i=$num;$i>0;$i--){
$sum=$sum*$i;
}
echo $num."的阶乘是".$sum;
交换两个变量的值 不使用第三方变量:
$a=1;
$b=4;
$a=$a^$b;
$b=$a^$b;
$a=$a^$b;
echo $a.$b;
两个有顺序的数组 将其合并 并排序 不使用函数:
$arr=array(2,4,6,8,10,12,16);
$b=array(1,3,5,7,9,11,20,21);
//合并数组
foreach($b as $key=>$val){
$arr[]=$val;
}
//冒泡排序
for($i=0;$i<count($arr);$i++){
for($j=$i+1;$j<count($arr);$j++){
if($arr[$i]>=$arr[$j]){
$new=$arr[$j];
$arr[$j]=$arr[$i];
$arr[$i]=$new;
}
}
}
print_r($arr);
用九九乘法表写出菱形
echo "<table width='600' border='1' style='float: left;'>";
for($j=1;$j<=9;$j++){
echo "<tr>";
for($z=0;$z<9-$j;$z++){
echo "<td> </td>";
}
for($i=$j;$i>=1;$i--){
echo "<td>{$i}*{$j}=".($i*$j)."</td>";
}
echo "</tr>";
}
echo "</table>";
echo "<table width='600' border='1'>";
for($j=1;$j<=9;$j++){
echo "<tr>";
for($i=1;$i<=$j;$i++){
echo "<td>{$i}*{$j}=".($i*$j)."</td>";
}
echo "</tr>";
}
echo "</table>";
echo "<table width='600' border='1' style='float: left;'>";
for($j=9;$j>=1;$j--) {
echo "<tr>";
for ($z = 0; $z < 9 - $j; $z++) {
echo "<td> </td>";
}
for ($i = 1; $i <= $j; $i++) {
echo "<td>{$i}*{$j}=" . ($i * $j) . "</td>";
}
}
echo "</table>";
echo "<table width='600' border='1'>";
for($j=9;$j>=1;$j--){
echo "<tr>";
for($i=1;$i<=$j;$i++){
echo "<td>{$i}*{$j}=".($i*$j)."</td>";
}
echo "</tr>";
}
echo "</table>";