PHP中的数组

数组:array,数字的组合,将一组数据存储到一个指定的容器中,用变量指向该容器,可以通过变量一次性得到该容器中的所有数据。

 

数组定义语法:

1、使用array关键字(常用):

$变量名 = array(元素1,元素2,元素3);

2、使用中括号来包裹数据:

$变量名 = [元素1,元素2,元素3];

 

3、隐形定义数组:给变量增加一个中括号,系统自动变成数组

$变量名[] = 值1;           //如果不提供下标也可以,系统自动生成数字下标(从0开始);

$变量名[下标] = 值;     //中括号里面的内容称之为下标 key,该下标可以是字母(单词)或者数字,与变量命名的规则相似

 

PHP数组特点

1、可以使用整数下标或者字符串下标;

     如果数组下标都为整数        : 索引数组

     如果数组下标都为字符串    :关联数组

2、不同下标可以混合存在       :混合数组

3、数组元素的顺序以放入顺序为准,跟下标无关;

4、数字下标的自增长性:

5、特殊值下标的自动转换;

6、PHP中数组元素没有类型限制 ;

7、PHP中的数组元素没有长度限制;

Ps:PHP中的数组是很大的数据,所以存储的位置是堆区,为当前数组分配一块连续的内存。

 

多维数组

多维数组:数组里面的元素又是数组

二维数组:

数组中所有的元素都是一维数组;

多维数组:

在第二维的数组元素中可以继续是数组,在PHP中没有维度限制

但是不建议使用超过三维以上的数组,会增加访问的复杂度,降低访问效率

异形数组(不规则数组):

数组中的元素不规则,有普通变量,也有数组

在实际开发过程中,不常使用,尽量让数组元素规则化,便于访问。

 

数组遍历

通常普通数组数据的访问都是通过数组元素的下标实现访问,如果说数组中所有的数据都需要依次输出出来,就需要使用一些简化的规则来实现自动获取下标以及输出数组元素。

访问一维元素:$arr[一维下标];

访问二维元素:$arr[一维下标][二维下标];

 

Foreach遍历语法:

基本语法:

foreach($数组变量名 as [$下标 =>]$值){

                 //通过$下标访问元素的下标;通过$值访问元素的值;

}

如果是关联数组(字母下标),foreach语法中就需要下标;如果是数字下标,就直接访问值;

<?php
$arr = array(1,2,3,4,5,6,7,8,9);
        //foreach 循环
foeach($arr as $i){
        //$i 可以随意命名,不影响程序
    echo $v,'<br/>';
}

输出结果:

 

如果需要获取下标,

<?php
$arr = array(1,2,3,4,5,6,7,8,9);
foreach($arr as $k=>$i){
	echo '数组中下标',$k,'的值为',$i,'<br/>';
}

输出结果为:

在进行数据存储定义的时候,通常二维数组不会两个维度的key下标都为数组,一般都是一维为数字(无意义),而二维为字符串(数据库表字段),所以在进行遍历的时候,通常是只需要针对一维进行遍历,取得二维数组元素,然后二维数组元素通过下标访问。

 

for循环遍历数组:

基于已知边界条件(起始和结束),然后有条件的变化。因此for循环遍历数组有对应条件

1、获取数组长度:count(数组名)得到数组元素的长度;

2、要求数组元素下标是规律的数字;

<?php
$arr1 =array(5,6,4,78,8,6,4,1);

/*for($i=0; $i<count(arr1);$i++){                        //每次执行都要进行count(arr1)的计算
echo '下标',$i,'的值为',$arr1[$i],'<br/>';
*/
	for($i=0,$lenght = count($arr1); $i<$lenght;$i++){   //相较于上面的代码,更加节省资源
	echo '下标',$i,'的值为',$arr1[$i],'<br/>';
}

 

while配合each和list遍历数组

 

each函数:能够从一个数组中获取当前数组指针所指向元素的下标和值,拿到后将数组指针下移,同时将拿到的元素下标和值以一个四个元素的数组返回:

0下标 ---> 取得元素的下标值

1下标 ---> 取得元素的值                              //索引

key下标 ---> 取得元素的下标值

value下标 ---> 取得元素的值                       //关联

返回两组数组,一组是索引方式,一组是关联数组

如果each取不到值,返回false 

 

list函数使用:list是一种结构,不是一种函数(没有返回值),是list提供一堆变量去从一个数组中取得元素值,然后依次存放到响应的变量中(批量为变量赋值,值来源于数组);

条件:list必须从索引数组中获取数据,而且必须从0开始;

 

配合方法:

list(变量1,变量2) = each(数组);  

 

 

数组相关函数:

1、排序函数:对数组元素进行排序,按照ASCII码进行比较,可以进行英文比较(首字母)

sort():顺序排序,下标重排

rsort():逆向排序,下标重排

asort():顺序排序,保持下标不变

arsort():逆向排序,保持下标不变

ksort():按照键名(下标)顺序排序

krsort():按照键名(下标)逆向排序

shuffle():随机打乱数组元素

都是对原数组内部进行排序

 

指针函数

reset():重置指针,将数组指针回到首位

end():重置指针,将数组指针指到最后一个元素

next():指针向下移动一位,返回下一个元素的值

prev():指针向上移动,取得上一个元素的值

current():取得当前指针对应的元素值

key():取得当前指针对应的下标值

注意:next和prev会移动指针,有可能导致指针移动到最前或者最后(离开数组),导致数组不能使用,通过next和prev不能回到正确的指针位置。只能通过end或者reset进行指针重置。

 

其他函数

count():统计数组中元素的数量

array_push():往数组中加入一个元素(数组后面),会改变数组

array_pop():从数组中取走一个元素(数组后面),会改变数组

array_shift():从数组中取出一个元素(数组前面),会改变数组

arrat_unshift():对数组压入一个元素(数组前面),会改变数组 

array_reverse():把数组元素反过来排序

in_array():判断元素在数组中是否存在

array_keys():获取一个数组的所有下标,返回一个索引数组

array_values():获取一个数组的所有值,返回一个索引数组

  • 9
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值