2.4.2 PHP数组的应用

遍历数组

通过foreach遍历数组

  • 只要键值:foreach($数组名称 as $val){循环体;}
  • 既要键名又要键值:foreach($数组名称 as $key=>$val){循环体;}

注意

  • 可以通过:和endforeach代替{}
  • PHP7中foreach的改变
    • foreach循环对数组内部指针不再起作用
    • 按照值进行循环的时候,foreach是对该数组的值的拷贝
    • 按照引用进行循环的时候,在循环体内修改数组对循环有影响

相关资料




通过指针函数遍历数组

key($array)
current($array)
next($array)
prev($array)
end($array)
reset($array)


通过each()和list()函数遍历数组

list($array):将下标连续的从0开始的索引数组赋值给相应的变量
each($array):得到当前指针所在位置的键值对,返回的是数组,包含4个部分;并且将指针向下移动一位(警告:本函数已自 PHP 7.2.0 起废弃。强烈建议不要使用本函数。

数组函数库

创建数组操作

range($min,$max[,$step=1]):快速创建下标连续的索引数组
compact($varname,$varname...):快速创建关联数组
array_fill($start_index,$num,$value):用给定的值填充数组
array_fill_keys($keys,$value):使用指定的键和值填充数组
array_combine($keys,$values):创建一个数组,用一个数组的值作为其键名,另外一个值作为其键值

键值相关操作

count($var[,$mode=COUNT_NORMAL])/sizeof():计算数组中的单元数目或对象中的属性个数 
array_keys($array):取得数组的键名作为下标连续的索引数组返回
array_values($array):取得数组的键值作为下标连续的索引数组返回
array_flip($array):交换数组中的键名和键值
in_array($search,$array[,$strict]):检测数组中是否存在某个值
array_search($search,$array[,$strict]):在数组中搜索给定的值,如果成功则返回相应的键名
array_key_exists($search,$array):检查给定的键名或索引是否存在于数组中
array_reverse($array[,$preserve_keys=false]):数组倒置
shuffle($array):打乱数组的元素
array_rand($array[,$num_req=1]):随机取出数组的键名
array_unique($array[,$sort_flag=SORT_STRING]):移除数组中重复的值
array_sum($array):统计数组中元素值的总和
array_product($array):计算数组中所有值的乘积
array_count_values($array):统计数组中值出现的次数
extract($array[,$extract_type=EXTR_OVERWRITE[,$prefix=null]]):从数组中将变量导入到当前的符号表 
array_pad($array,$size,$value):用值将数组填补到指定长度

数组指针函数

key($array):得到当前指针所在位置元素的键名
current($array)|pos($array):得到当前指针所在位置元素的键值
next($array):将数组指针向下移动一位,并且返回当前指针所在位置元素的键值
prev($array):将数组指针向上移动一位,并且返回当前指针所在位置元素的键值
end($array):将数组指针移动倒数组的末尾,并且返回当前指针所在位置元素的键值
reset($array):将数组指针移动到数组的开始,并且返回当前指针所在位置元素的键值
each($array):返回数组中当前的键值对,并将数组指针向下移动一位
list($var,...):将数组中元素的值赋给对应的变量
array_unshift($array,$value...):在数组开头插入一个元素或者多个元素
array_shift($array):弹出数组的第一个元素
array_push($array,$value...):在数组末尾压入一个元素或者多个元素
array_pop($array):弹出数组的最后一个元素

数组的排序函数

sort($array[,$sort_flag=SORT_REGULAR]):对数组的键值按照升序排列,不保留键名
rsort($array[,$sort_flag=SORT_REGULAR]):对数组键值按照降序排列,不保留键名
asort($array[,$sort_flag=SORT_REGULAR]):对数组键值按照升序排列,保留键值对关系
arsort($array[,$sort_flag=SORT_REGULAR]):对数组键值按照降序排列,保留键值对关系
ksort($array[,$sort_flag=SORT_REGULAR]):对数组的键名按照升序排列
krsort($array[,$sort_flag=SORT_REGULAR]):对数组的键名按照降序排列
natsort($array):用自然排序法排序
natcasesort($array):用自然排序算法对数组进行不区分大小写字母的排序 
array_multisort($arr[,$arg=SORT_STRING...]):对多个数组或多维数组进行排序

数组的交集与差集

array_diff($array1,$array2[...]):计算数组的差集
array_diff_assoc($array1,$array2[,...]):带索引检查计算数组的差集 
array_intersect($array1,$array2[...]):计算数组的交集
array_intersect_assoc($array1,$array2[...]):带索引检查计算数组的交集

数组的拆分与合并

array_slice($array,$offset[$length=null[,$preserve_keys=false]]):截取数组
array_splice($array,$offset[,$length=0,$replacement]]):将数组中一部分去掉并用其它值替代
array_merge($arr1[,$arr2...]):合并数组
array_chunk($array,$size[,$preserve_keys=false]):将一个数组分割成多个
array_column($array,$column_key[,$index_key]):返回数组中指定的一列


实战演练

简易留言板 在线测试

本文是全系列中第19 / 24篇:PHP快速入门

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部