PHP-自己写的代码练习-数组
来源:互联网 发布:py是什么意思啊网络 编辑:程序博客网 时间:2024/06/13 23:41
1.数组
<?php
header("content-type:text/html;charset=utf-8");
//求一维数组的平均值
/*$arr = array(2,5,6,8,9,6, );
$len = count($arr);//数组长度
$sum = 0;
$a = 0;
for($i=0;$i<$len;++$i){
$sum += $arr[$i];
++$a;
}
$pingjun = $sum/$a;
echo $pingjun."<br />".$sum."<br />".$a;*/
//求二维数组的平均值
$arr2 = array(
array(11,12, 13),
array(21,22,23, 24, 25),
array(31,32,33, 35),
array(41,42,43)
);
$len = count($arr2);
$sum = 0;
$c = 0;
for($i=0;$i<$len;++$i){
$arr1 = $arr2[$i];//他是一维数组
$len1 = count($arr2[$i]);
for($k=0;$k<$len1;++$k){
$sum+=$arr1[$k];
++$c;
}
}
$zhi = $sum/$c;
echo $zhi."<br />".$sum."<br />".$c;
//求一维数组的最大值
/*$arr1 = array(1,3,5,6,9,4,11 );
$max = 1;
$pos = 0;
$len = count($arr1);
for($i=0;$i<$len;++$i){
if($arr1[$i] > $max){
$max = $arr1[$i];
$pos = $i;
}
}
echo "数组的最大值:".$max."<br />下标是:".$pos;*/
//求数组的最大值和最小值的位置交换
/*$arr1 = array(1,3,5,6,9,4,11 );
echo "<br />没交换前:";print_r($arr1);
$max = $arr1[0];
$pos1 = 0;
$min = $arr1[0];
$pos2 = 0;
$len = count($arr1);
for($i=0;$i<$len;++$i){
if($arr1[$i]>$max){
$max = $arr1[$i];
$pos1 = $i;
}
if($arr1[$i]<$min){
$min = $arr1[$i];
$pos2 = $i;
}
}
echo "<br />最大值为:".$max."下标为:".$pos1;
echo "<br />最小值为:".$min."下标为:".$pos2;
$t = $arr1[$pos1];
$arr1[$pos1] = $arr1[$pos2];
$arr1[$pos2] = $t;
echo "<br />交换后:";print_r($arr1);
*/
/*$arr1 = array(1,3,5,6,9,4,11 );
$v1 = $arr1[0];
$v2 = $arr1[6];
$t = $v1;
$v1 = $v2;
$v2 = $t;
print_r($arr1);*/
/*$arr4 = array(1=>3,'a1'=>11,3=>5,"mn"=>18,88=>2 );
$v1 = current($arr4);
$v2 = key($arr4);
echo "<br>单元的下标和值分别为:$v2,$v1";
$v3 = next($arr4);
$v4 = key($arr4);
echo "<br>现在单元的下标和值分别为:$v4,$v3";
next($arr4);
next($arr4);
next($arr4);
$v3 = current($arr4);
$v4 = key($arr4);
echo "<br>连续移动三次next后,现在单元的下标和值分别为:$v4,$v3";
next($arr4);
$v3 = current($arr4);
$v4 = key($arr4);
echo "<br>指针到最后,再移动一下,现在单元的下标和值分别为:$v4,$v3";
var_dump($v3);
var_dump($v4);
$v5 = end($arr4);
echo $v5;*/
//使用for循环和 next函数来代替foreach遍历数组
/*$arr4 = array(1=>3,'a1'=>11,3=>5,"mn"=>18,88=>2 );
$len = count($arr4);
for($i=0;$i<$len;++$i){
echo key($arr4)."=>".current($arr4)."<br />";
next($arr4);
}*/
/*$arr4 = array(1=>3,'a1'=>11,3=>5,"mn"=>18,88=>2 );
$result1 = each($arr4);
echo "<br />result1为:";print_r($result1);*/
/*$arr4 = array(1=>3,'a1'=>11,3=>5,"mn"=>18,88=>2 );
sort($arr4);
print_r($arr4);*/
//冒泡排序
//规律描述:
/*1,假设数组的数据有n个。
2,要进行比较的“趟数”为n-1;
3,每一趟要比较的数据个数都比前一趟少一个,第一趟要比较n个(即比较n-1次)
4,每一次比较,如果发现“左边数据”大于“右边数据”,就对这两者进行交换位置。*/
/*$arr1 = array(9,3,5,8,2,7,5);
$n = count($arr1);
for($i = 0;$i < $n-1;++$i){//这就是n-1趟
for($k = 0;$k < $n-$i-1;++$k){//每一趟,要比较$n-$i-1次
if( $arr1[$k] > $arr1[$k+1 ]){
$t = $arr1[$k];
$arr1[$k] = $arr1[$k+1];
$arr1[$k+1] = $t;
}
}
}
print_r($arr1);
*/
//选择排序
//规律描述:
/*1,假设数组的数据有n个。
2,要进行查找最大值单元并进行交换的“趟数”为n-1;
3,每一趟都要求出“剩余数据”中的最大值单元,并且,剩余数据的数量每一趟都少1个,第一趟有n个。
4,每一趟找出最大值单元后,都要进行交换:最大值单元,跟剩余数据中的最后一个单元交换。*/
/*$arr1 = array(9,3,5,8,2,7,5);
$n = count($arr1);
for($i = 0; $i < $n-1; ++$i){
$max = $arr1[0];
$pos = 0;
for($k = 0; $k < $n-$i; ++$k){
if($arr1[$k]>$max){
$max = $arr1[$k];
$pos = $k;
}
}
$t = $arr1[$pos];
$arr1[$pos] = $arr1[$n-1-$i];//$n-1-$i就是剩余数据的最后一项的下标
$arr1[$n-1-$i] = $t;
//$pos = $n-1-$i;
}
print_r($arr1);*/
?>
- PHP-自己写的代码练习-数组
- 自己写的两个练习
- 自己写的代码
- 练习写代码的网站
- 自己练习写的n!末尾零的个数的代码
- 自己写的php无限级分类小练习(地区)
- php 自己写的MVC
- 自己写的几个练习代码——精简精简再精简
- 自己练习写的Procedure,两种方法遍历cursor,代码已验证
- 自己写的一个练习程序
- 自己写的frameset代码
- 自己写的分页代码
- 自己写的代码文件
- 自己写的代码:时钟
- 自己写的代码,备忘
- 自己写的代码2
- 自己写的代码生成器
- 汉诺塔代码自己写的
- [Leetcode]26. Remove Duplicates from Sorted Array
- Xcode折叠函数设置 及快捷键
- UNIX网络编程:socket套接字(TCP与UDP)
- Spring Security 与 Oauth2 整合 步骤
- 傅里叶1
- PHP-自己写的代码练习-数组
- 反射机制进行动态调用的两种创建方法实例与hama中的反射机制
- 在DOS框下绘制圆
- 剪刀手:Android平台上的图片裁剪库
- 51nod 1264 基础
- 这是第一篇
- 读懂UML类图
- java.io.File中的绝对路径和相对路径.
- MyEclipse ant 报错 Specified VM install not found: type Standard VM, name jre