半条咸鱼,亦要仰望星空脚踏实地
下面来学习php种的数组相关的知识
数组:可以存储多个数据
创建数组:$arr[0]=123;
$arr[1]=456;
$arr[3]=789;
[0]--->这个为下标或者称为关键字
$arr[0]-->称为数组的一个元素
$arr[0]=123;123代表$arr[0]元素对应的值
$arr-->这是该数组的名称
php的数组中,元素存放的值可以是任意数据类型!
foreach更适用于数组的遍历,因为其不会局限于下标
例:$arr['name']="zhoupeng";
$arr['love']="shuting";
这中形式的下标用for循环无法遍历出,因为for循环下标适用数字
用foreach遍历可以:
foreach ($arr as $key=>$val){
echo $key."=".$val."<br/>";
}
如果是适适用使用用for循环、while、do。。。while来遍历,则数组下标需要是数字
/php数组的相关函数
//1.count
$a = array(1,2,3,4,5);
$b = 123;
echo count($a)."<br>";
//2.is_array,判断是否是数组
echo is_array($b);
//3.print_r和var_dump,显示数组
print_r($a);
var_dump($a);
//4.explode,拆分字符串
$str = "1,2,3,4,5,3,6,0";
$arr = explode(",",$str);
var_dump($arr);//5.unset。,删除数字数组数
例子 | 名称 | 结果 |
---|---|---|
$a + $b | 联合 | $a 和 $b 的联合。 |
$a == $b | 相等 | 如果 $a 和 $b 具有相同的键/值对则为 TRUE 。 |
$a === $b | 全等 | 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE 。 |
$a != $b | 不等 | 如果 $a 不等于 $b 则为 TRUE 。 |
$a <> $b | 不等 | 如果 $a 不等于 $b 则为 TRUE 。 |
$a !== $b | 不全等 | 如果 $a 不全等于 $b 则为 TRUE 。 |
下面来学习以下数组的排序了:
内部排序
交换式排序法
1.冒泡排序
2.选择排序
3.插入排序
4.快速排序:速度非常快的一种排序方法
外部排序
因为数据量过大所以必须借助外部文件来完成
冒泡排序:
$arr=array(0,7,5,3,18,-50);
$temp = 0;//中间变量
//冒泡排序,从小到大排
//外循环
for($i=0;$i<count($arr)-1;$i++){
for($j=0;$j<count($arr)-1-$i;$j++){
//前一个数比后面大,两数交换
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
}
}//第二层循环就是将最大的数抛到最后,所以$j<count($arr)-1-$i,减去$i是去除之前抛后的
}
$arr = array(5,12,-3,0,28,-15);
$temp = 0;
for($i=0;$i<count($arr)-1;$i++){
$minVal = $arr[$i];//假设$i就是最小的数
$minIndex = $i;//记录我认为最小数的下标
for($j=$i+1;$j<count($arr);$j++){
//判断是不是最小值
if($minVal>$arr[$j]){
$minVal = $arr[$j];
$minIndex = $j;
}
//最后交换
$temp=$arr[$i];
$arr[$i] = $arr[$minIndex];
$arr[$minIndex] = $temp;
}
print_r($arr);
print_r($arr);
插入排序:
$arr = array(0,-3,-5,-1,1,6,7,-9);
//先默认下标为0的数为一个有序的数
for($i=1;$i<count($arr);$i++){
//$insertVal是准备插入的数
$insertVal = $arr[$i];
//准备先和前一位数比较
$insertIndex = $i-1;
//若条件满足,则我们还没有找到适当的位置
while($insertIndex>=0&&$insertVal<$arr[$insertIndex]){
//同时把数后移
$arr[$insertIndex+1]=$arr[$insertIndex];
$insertIndex--;
}
//插入
$arr[$insertIndex+1]=$insertVal;
print_r($arr);