PHP数组操作

数组是一系列数据组合,在其中每个数据都是独立的,你可以从中抽取、排序、合并、删除。

数组中的每一个数据称作一个元素,元素包含两个(一个是键一个是值【键值对】)。

创建数组

在PHP里创建数组有两个方法,一个是调用array()方法,一个是将[]赋值给变量。

使用array()声明一个数组:

1
$arr = array();

往空数组中填入数据:

1
2
3
$arr = array(1, 2, 3);// 从数组声明时就填入数据
$arr[] = 4; // 向已经声明过的数组中填入数据(填入到最后
array_push($arr,[5,6,7]); // 推荐写法: $arr[] = [5, 6, 7];

关于键值对:

键是默认从0开始的,如果想让它默认从1开始可以如下设置(键又称下标

1
2
3
4
5
6
7
8
$arr = [1 => 1];
$arr[] = 2;
print_r($arr);
//Array
//(
// [1] => 1
// [2] => 2
//)

通过赋值方式向数组填入值

1
2
3
4
5
6
7
8
9
// 同时声明和创建了$arr为数组
$arr[1] = "Hello";
$arr[2] = " World";
print_r($arr);
//Array
//(
// [1] => Hello
// [2] => World
//)

从数组中取值

1
2
$arr = [1, 2, 3, 4];
echo $arr[3];

数组的类型

数组有两种类型,一种叫做索引数组(indexed array)还有关联数组(associative array),区别在于索引数组用数字当做键,关联数组用字符串当做键。

多维数组

多维数组意思就是在一个数字中键对应的值上还有一个数组。

1
2
3
4
5
$arr = [
"三楼" => [1, 2, 3],
"二楼" => [1, 2, 3, 4],
"一楼" => [1, 2],
];

从多维数组中取值

1
2
3
4
5
6
$build = [
"三楼" => [1, 2, 3],
"二楼" => [1, 2, 3, 4],
"一楼" => [1, 2],
];
echo $build['二楼'][1];

统计数组中的元素

使用count(array $array ,COUNT_RECURSIVE )方法

$array :获取长度的数组

$count_recursive: 是否递归 (设置为 1 或者 COUNT_RECURSIVE 时会递归

1
2
3
4
5
6
7
8
9
10
$build = [
"三楼" => [1, 2, 3],
"二楼" => [1, 2, 3, 4],
"一楼" => [1, 2],
];
echo count($build);
echo PHP_EOL;
echo count($build, 1);
// 3
// 12

查询数组中的元素

1
mixed array_search(mixed $neeld, array $haystack [,bool $strict])

$neeedle: 搜索的值。

$haystack:指定被搜索的数组。

$strict:可选参数 默认为false 为true时 将在数组中检测给定值的类型

返回: 查到返回$needle的键否则为false

1
2
3
4
5
6
7
$build = [
"三楼" => [1, 2, 3],
"二楼" => [1, 2, 3, 4],
"一楼" => [1, 2],
];
var_dump(array_search([1, 2], $build));
// string(6) "一楼"

获取数组中的最后一个元素

1
mixed array_pop(array $array)

删除数组中重复元素

1
arrary array_unique(array $array)