跳到主要内容

PHP 数组

两种形式:索引数组和关联数组。索引数组的 key 是 0 开始的整数。关联数组的 key 是字符串

PHP 中,数组内部都存储为关联数组。


// 索引数组
$arr1 = array('spring', 'summer', 'autumn', 'winter');

// 关联数组
$arr2 = array(
's1' => 'spring',
's2' => 'summer',
's3' => 'autumn',
's1' => 'winter'
);

访问元素

// 索引数组
$arr1 = array('spring', 'summer', 'autumn', 'winter');

// 关联数组
$arr2 = array(
's1' => 'spring',
's2' => 'summer',
's3' => 'autumn',
's4' => 'winter'
);

echo $arr1[1];
echo $arr2['s1'];

修改元素

$arr1 = array('spring', 'summer', 'autumn', 'winter');
$arr1[1] = '夏天';

追加元素

$arr1 = array('spring', 'summer', 'autumn', 'winter');
$arr1[] = '春天';

获取数组大小

count()sizeof()

填充数组

array_pad()

多维数组

array(M, N)

解析多个值

list($v1, $v2, $v3) = $array;

切割数组

array_slice()

数组分块

array_chunk()

数组键值

array_keys()
array_values()

检测元素是否存在

array_key_exists(key, array)

删除和插入

array_splice(),这是一个需要理解的函数。

数组和变量

extract() 

compact()

遍历数组

PHP 中,采用 foreach 结构遍历数组。

迭代器函数

current()
reset()
next()
prev()
end()
each()
key()
each()

数组元素访问

array_walk(array, callable)

数组归纳

array_reduce(array, callable)

数组归纳

in_array(to_find, array)

数组排序

// 按值排序数组,然后重新分配索引。
sort()
rsort()
usort()

// 按值排序
asort()
arsort()
uasort()

// 按键排序
ksort()
krsort()
uksort()

数组逆序

$reversed = array_reverse(array);

翻转键值对

$reversed = array_flip(array);

数组乱序

shuffle(array);

数组求和

array_sum(array)

数组合并

array_merge(array)

数组差异

array_diff(array)

数组过滤

array_filter(array, callback)

其它数据结构

PHP 灵活的原因之一是数组,数组其实是实现了各种数据结构的。

比如:

  • 集合:set
  • 栈:stack
  • 队列:queue
array_push()
array_pop()

array_shift()
array_unshift()