目录
1 数组类型
1.1 关联数组
关联数组的键值由字符串或字符串和数字组合。
<?php
$students=['student1'=>'brell','student2'=>'lwqbrell'];
var_dump($students);
?>
1.2 索引数组
索引数组的键值由数字组成,在没有指定键值得情况下,默认为索引数组。
<?php
$students=['brell','lwqbrell'];
var_dump($students);
?>
2 二维数组
将两个一维数组组合起来便可形成二维数组(在一维数组里嵌套一维数组),二维数组很重要,在日常的开发过程中我们会经常使用到二维数组。可以使用array()来定义,也可以使用方括号[ ]来定义。
<?php
$score=array(
'math'=>array(88,86,97),
'chinese'=>array(88,93,97),
'english'=>array(88,86,97)
);
var_dump($score);
?>
<?php
$score=[
'math'=>[88,86,97],
'chinese'=>[88,93,97],
'english'=>[88,86,97]
];
var_dump($score);
?>
3 数组的基本操作
3.1 数组大小
int count ( mixed
$array_or_countable[, int$mode= COUNT_NORMAL ] )count — 计算数组中的单元数目,或对象中的属性个数
array_or_countable
数组或者 Countable 对象。mode
如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),count() 将递归地对数组计数。对计算多维数组的所有单元尤其有用。
<?php
$score=[
'math'=>[88,86,97],
'chinese'=>[88,93,97],
'english'=>[88,86,97]
];
$len=count($score);
echo $len;
?>
3.2 数组转字符串
string implode ( string
$glue, array$pieces)glue
默认为空的字符串。pieces
你想要转换的数组
<?php
$programming=['C language','Java','PHP','C#'];
echo implode(',', $programming);
?>
3.3 移除数组元素
array_splice
array_splice — 去掉数组中的某一部分并用其它值取代
array array_splice ( array
&$input, int$offset[, int$length= count($input) [, mixed$replacement= array() ]] )把
input数组中由offset和length指定的单元去掉,如果提供了replacement参数,则用其中的单元取代。
$arr=[3,4,8,1,6];
array_splice($arr,2);
var_dump($arr); // 返回[3,4]
$arr=[3,4,8,1,6];
array_splice($arr,0,2);
var_dump($arr); // 返回[8,1,6]
3.4 数组元素的进栈与出栈
array_push
array_push — 将一个或多个单元压入数组的末尾(入栈)
int array_push ( array
&$array, mixed$value1[, mixed$...] )array_push() 将
array当成一个栈,并将传入的变量压入array的末尾。array的长度将根据入栈变量的数目增加。
array_pop
弹出数组最后一个单元(出栈)
array_pop ( array
&$array) : mixed
3.5 合并数组
array_merge
array_merge — 合并一个或多个数组
array array_merge ( array
$array1[, array$...] )array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。
如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
3.6 数组排序与打乱
bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
array
要排序的数组。sort_flags
可选的第二个参数 sort_flags 可以用以下值改变排序的行为:排序类型标记:
SORT_REGULAR - 正常比较单元(不改变类型)
SORT_NUMERIC - 单元被作为数字来比较
SORT_STRING - 单元被作为字符串来比较
SORT_LOCALE_STRING - 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。
SORT_NATURAL - 和 natsort() 类似对每个单元以“自然的顺序”对字符串进行排序。 PHP 5.4.0 中新增的。
SORT_FLAG_CASE - 能够与 SORT_STRING 或 SORT_NATURAL 合并(OR 位运算),不区分大小写排序字符串。
bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
rsort — 对数组逆向排序
bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
asort — 对数组进行排序并保持索引关系
array
输入的数组。sort_flags
可以用可选的参数 sort_flags 改变排序的行为
bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
arsort — 对数组进行逆向排序并保持索引关系
bool shuffle ( array &$array )
随机排列单元的顺序一个数组
3.7 数组指针
mixed current ( array
&$array)current — 返回数组中的当前单元
mixed end ( array
&$array)end — 将数组的内部指针指向最后一个单元
mixed prev ( array
&$array)prev — 将数组的内部指针倒回一位
mixed reset ( array
&$array)reset — 将数组的内部指针指向第一个单元
mixed next ( array
&$array)next — 将数组中的内部指针向前移动一位
3.8 数组遍历
for遍历数组
<?php
$fruit=['apple','banana','orange'];
for ($i=0; $i <count($fruit) ; $i++) {
echo $fruit[$i];
};
?>
foreach遍历数组
<?php
$score=[
'math'=>86,
'chinese'=>93,
'english'=>97
];
foreach ($score as $key => $value) {
echo $key.':'.$value;
}
?>
4 其它常用数组函数
- in_array() 判断元素是否在数组中
- array_keys() 获取数组的key列表
- array_values() 获取数组的值列表
- array_intersect() 获取两个或两个数组以上的交集
- array_diff() 比较两个或两个以上数组的差集
- array_unique() 删除数组中的重复值
- array_walk() 使用用户自定义函数对数组中的每个元素做回调处理
本文深入解析PHP数组的类型,包括关联数组和索引数组,以及二维数组的定义与使用。同时,详细介绍了数组的基本操作,如大小计算、字符串转换、元素移除、进栈与出栈、合并、排序与打乱等。此外,还涵盖了数组指针、遍历方法及其它常用函数,如in_array()、array_keys()等。
789

被折叠的 条评论
为什么被折叠?



