数组
数组由一个或多个数组元素组成
数组元素由键(key)和值(value)组成
键为元素的识别名称,也被称为数组下标
值为元素的内容
映射为键和值之间存在一种对应关系
数组可以分为关联数组和索引数组,索引数组以数字为键,关联数组以字符串为键
索引数组
//键名为整数的数组默认情况下键名由0开始,并依次递增。另外,索引数组的键名也可以自己指定
$data=array('apple','grape','pear');//省略键名
$data=array(2=>'basketball',4=>'swim');//指定键名
关联数组
//键名为字符串的数组,键与值之间存在一一对应的关系
$data=array('id'=>'10','name'=>'Tom','tel'=>18810);
定义混合数组
$data=array(2,'str','id'=>5,5=>'b',a);
定义多维数组
$data=array(
0=>array('name'=>'Tom'),
1=>array('name'=>'Lucy'),
2=>array('name=>'Jimmy')
);
赋值方式
$arr[]=123;//$arr[0]=123;
$arr[]='hello';//$arr[1]='hello';
短数组定义
$data=['lala','haha'];//array('lala','haha')
$dara=['id'=>1,'name'='Tom'];//array('id'=>1,'name'=>'Tom')
$data=[[1,3],[2,4]];//array(array(1,3),array(2,4));
访问数组
$data=[1.2.3.4];
$deta=['id'=>'deta','name'=>'Tom'];
echo $data[1];//2
echo $deta['id'];//deta
遍历数组
$info=['id'=>'1','usr'=>'Tom','age'=>18];
//第一种方式
//foreach(数组名称 as 键=>值){
//处理语句
//}
foreach($info as $k=>$v){
echo $k.':'.$v;//输出: id: 1 usr: Tom age: 18
}
//第二种方式
//foreach(数组名称 as 值){
//处理语句
//}
foreach($info as $v){
echo '$v';//输出: 1 Tom 18
}
数组的删除
$info=['id'=>'1','usr'=>'Tom','age'=>18];
unset($info);
数组操作符
指针操作函数
数组元素操作函数
排序函数
检索函数
其他数组函数
字符串与数组的转换
//explode()函数用于根据指定字符对字符串分割
//第一个参数表示分隔符。
//第二个参数表示要分割的字符串。
//第三个参数可选,表示返回的数组中最多包含的元素个数当其为负数m时,表示返回除了最后的m个元素外的
//所有元素,当其为0时,则把它当做1处理。
//字符串分割成数组
var_dump(explode('n','banana'));
//输出: array(3) { [0]=> string(2) "ba" [1]=> string(1) "a" [2]=> string(1) "a" }
//分割时限制次数
var_dump(explode('n', 'banana', 2));
//输出: array(2) { [0]=> string(2) "ba" [1]=> string(3) "ana" }
//返回出最后两个元素外的所有元素
var_dump(explode('n', 'banana', -2));
// 输出结果:array(1) { [0]=> string(2) "ba" }
//implode()用于库用指定字符将一堆数组内的元素连接成字符串(返回值为字符串)
第一个参数表示连接字符串(由于历史原因,第一个参数可以省略)
第二个参数表示待转换的数组。其中,不论指定字符是否存在,只要第二个参数是空数值,结果都是空字符
//利用指定字符连接一堆数组元素的值
echo (implode('-',['a','b','c']));
//输出:a-b-c
//省略指定字符
echo (implode(['a','b','c']));
//输出: abc
//利用指定字符连接一个空数组
echo (inplode('it',[]));
//输出:string(0)""