前言
不知不觉距离上篇PHP的文章 PHP学习笔记(才贯二酉)已经过去好多天了,今天看到推送——1024程序员节,莫名还有些小激动(os:自知自己的一些雕虫小技肯定和程序员这个技术深似海的称号扯不上什么关系,但是奈何人菜瘾大,还是忍不住在各位 “关公” 面前浅耍一下小刀,如有不足,感谢指正呀!) 也希望通过学习笔记巩固自己所学知识,学会举一反三,从一件事情类推而知道其他许多事情。
数组(一)
为什么要创建数组这里就不赘述了,在 PHP 中,有三种类型的数组:
数值数组 - 带有数字 ID 键的数组 关联数组 - 带有指定的键的数组,每个键关联一个值 多维数组 - 包含一个或多个数组的数组
创建数组
在 PHP 中,定义数组的方式有:
利用array[ ]函数 来定义,这也是PHP中最常用定义数组的方法:
$arr1=array("hello","world",1);
var_dump($arr1);
echo "<br>";
利用中括号 来定义数组:
$arr2=["hello","world",1];
var_dump($arr2);
echo "<br>"
通过键值对 来定义隐形数组:
$array[]='orange';
$array[2]='apple';
$array[]='banana';
$array['watermelon']='watermelon';
var_dump($array);
隐形数组的输出: 由此可以简单总结一下PHP中数组的特点:
- 数组的下标可以是整数下标(数组元素均为整数下标:索引数组);也可以是字符串类型的下标(数组元素均为字符串:关联数组);也可以是不同类型下标混合使用(混合数组);
- 数组元素的顺序和元素放入的顺序有关,和下标无关;
- 整数下标具有自增长性,如果手动添加一个较大的整数下标,后面的下标会根据最大的元素下标开始自增;
- 特殊值的下标可以自动转换:true,false等
5.数组元素没有类型限制,也没有长度限制,不需要提前指定数组长度,比较灵活,同时效率也不会那么高;存储的位置是在堆区,为数组分配一块连续的内存。
PHP中根据索引的分类分为:索引数组、关联数组 索引数组和关联数组的差别就在键名上,索引数组的键名是数字;关联数组的键名由字符串或字符串、数字混合的形式组成;如果一个数组中有一个键名不是数字,那么这个数组就是关联数组。
索引数组
$arr3=array(
'2'=>"张三",
'3'=>"张四",
'4'=>"张五",
'5'=>"张六",
);
print_r($arr3);
var_dump($arr3);
echo $arr3[3];
$arr4 = array('张三','张四','张五','张六');
print_r($arr4);
echo "<br>";
echo '数组 $arr4 中的,键名为3的键值为:'.$arr4[3];
$arr5[0]='张三';
$arr5[1]='张四';
$arr5[2]='张五';
$arr5[3]='张六';
var_dump($arr5);
关联数组
$arr6 = array(
'Apple' => '苹果',
'Banana' => '香蕉',
'Orange' => '橘子',
'Plum' => '李子',
'Strawberry' => '草莓'
);
print_r($arr6);
多维数组
我们以二维数组为例,它的语法有:
1、直接赋值法,语法 $array[一维下标][二维下标]="值"; 2、使用array()函数,语法array(array(key=>value...),array(key=>value...)....); 比如:
$stu[0]['姓名'] = '张三';
$stu[0]['年龄'] = '25';
$stu[0]['性别'] = '男';
$stu[1]['姓名'] = '李四';
$stu[1]['年龄'] = '21';
$stu[1]['性别'] = '男';
$stu[2]['姓名'] = '娜娜';
$stu[2]['年龄'] = '22';
$stu[2]['性别'] = '女';
var_dump($stu);
$stu1=array(
array('张三','25','男'),
array('李四','21','男'),
array('娜娜','22','女'),
);
var_dump($stu1);
$stu2=array(
array('name'=>'lili','sex'=>'famale','age'=>12),
array('name'=>'tom','sex'=>'male','age'=>15),
array('name'=>'join','sex'=>'famale','age'=>10)
);
echo ($stu2[0]['name']);
echo "<br>";
数组的遍历
PHP中遍历数组有三种常用的方法:
1、使用for语句循环遍历数组;
2、使用foreach语句遍历数组;
3、联合使用list()、each()和while循环遍历数组(感觉挺有意思的,试一下)
这三种方法中效率最高的是使用foreach语句遍历数组,在这里着重介绍一下foreach语句:
$arr9 = array('tom','lili','join');
$num = count($arr9);
for($i=0;$i<$num;++$i){
echo $arr9[$i].'<br />';
}
foreach($arr9 as $value){
echo $value."<br>";
}
foreach($arr9 as $key=> $value){
echo $key.$value."<br>";
}
$arr = array('Chinese'=>'沃和莱特','english'=>'varlet');
while(list($key,$value) = each($arr)){
echo $key.'=>'.$value.'<br />';
}
foreach语句遍历二维数组:
$employee=array(
"人事部"=>array('a','b','c'),
"研发部"=>array('d','e','f'),
);
foreach($employee as $key=>$value){
echo $key.":";
foreach($value as $keyin=>$valuein){
echo $valuein." ";
}
echo "<br>";
}
$people=array(
array('name'=>'张三','sex'=>'male','age'=>25,'ad'=>"济南"),
array('name'=>'李四','sex'=>'famale','age'=>27,'ad'=>"上海"),
array('name'=>'王五','sex'=>'male','age'=>21,'ad'=>"青岛")
);
echo "<table border='1'>";
echo "<tr><th>id</th><th>name</th><th>sex</th><th>age</th><th>ad</th></tr>";
foreach($people as $key=>$value){
echo "<tr>";
echo "<td>$key</td>";
foreach($value as $keyin=>$valuein){
echo "<td>$valuein</td>";
}
echo "</tr>";
}
echo "</table>";
echo "<br>";
简单总结一下foreach遍历的本质就是数组的内部有一颗指针,默认指向数组元素的第一个元素,foreach利用指针获取数组,同时移动指针;并且foreach会重置指针,让指针指向第一个元素;
数组函数
$str2=["张三",23,"jinan"];
$res=array_search("张三",$str2);
echo $res;
$str2=["张三",23,"jinan"];
$res1=array_pop($str2);
echo $res1;
$str2=["张三",23,"jinan"];
$res2=array_push($str2,"qingdao");
print_r($str2);
$arr3=["join","jim","tom","tom"];
$res4=array_unique($arr3);
var_dump($res4);
$arr4=["mudan","meigui","huaihua"];
sort($arr4);
print_r($arr4);
$arr5=[12,13,32,45,0];
sort($arr5);
print_r($arr5);
$arr4=["mudan","meigui","huaihua"];
rsort($arr4);
print_r($arr4);
$arr5=[12,13,32,45,0];
rsort($arr5);
print_r($arr5);
$age=array(
"granderfather"=>110,
"grandermonther"=>100,
"father"=>42,
"mother"=>40,
"brother"=>10,
"me"=>19,
);
asort($age);
print_r($age);
$age1=array(
"ben"=>11,
"lili"=>12,
"tom"=>13
);
ksort($age1);
print_r($age1);
$age1=array(
"ben"=>11,
"lili"=>12,
"tom"=>13
);
krsort($age1);
print_r($age1);
$age=array(
"granderfather"=>110,
"grandermonther"=>100,
"father"=>42,
"mother"=>40,
"brother"=>10,
"me"=>19,
);
shuffle($age);
print_r($age);
$arr5=[12,13,32,45,0];
unset($arr5[0]);
print_r($arr5);
$age1=array(
"ben"=>11,
"lili"=>12,
"tom"=>13
);
$res9=array_values($age1);
print_r($res9);
$number = range(0,50,10);
print_r ($number);
$num=[12,13,32,45,0,7,8,10];
$Nu=array_slice($num,1,3);
print_r($Nu);
总结
以上就是这篇文章对php数组的介绍啦,后续还会持续更新~可爱的程序员大佬们1024快乐,你是电脑的灵魂,你是网络的主人,你是程序的化身,你是创意的天使,你是互联网的传说,期待创造与前进,加油!
|