创建数组的方法:1、利用“$数组名[下标]=值;”语句,以直接赋值的方式创建数组;2、使用“$数组名=array(键名=>值);”语句;3、用array_fill()以填充键值的方式来创建一个新数组;4、用array_combine()等。

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

php中怎么创建数组?下面本篇文章就来给大家介绍几种创建数组的方法。

1、直接赋值的方式创建数组

声明一维数组的语法格式如下所示:

$数组变量名[下标] = 值;

其中下标(索引值)可以是一个字符串或一个整数,并且下标需要使用[ ]包裹。

声明一个索引数组时,如果索引值是递增的,我们也可以不在方括号内指定具体的索引值,这时索引值默认从 0 开始依次增加。

<?php
header("Content-type:text/html;charset=utf-8");
$array[] = '苹果';
$array[] = '香蕉';
$array[] = '橘子';
$array[] = '榴莲';
var_dump($array);
?>

1.png

2、使用 array() 函数创建数组

声明数组的另一种方法是使用 array() 函数来新建一个数组。它接受一定数量用逗号分隔的key=>value参数对。语法格式如下所示:

$数组变量名 = array(key1 => value1, key2 => value2, ..., keyN => valueN);

示例1:

<?php
header("Content-type:text/html;charset=utf-8");
$array = array('红色','黄色','蓝色','紫色');
var_dump($array);
?>

2.png

示例2:

<?php
header("Content-type:text/html;charset=utf-8");
$array = array("id"=>25,"name"=>"李华","age"=>18);
var_dump($array);
?>

3.png

3、使用array_fill()创建数组

array_fill():会以填充键值的方式来创建一个新数组

<?php
$arr=array_fill(0,4,"hello");
var_dump($arr);
?>

array_fill($index, $number, $value)函数接受3个不可省略的参数$index(起始索引)、$number(填充元素数量)和$value(用于填充的键值)。

其中,$index参数支持负值,数组索引有以下三种取值情况:

  • 如果为正数,则数组索引从$index值开始,到$index+$number-1值结束。例$index为2,$number为4,则数组索引为:2、3、4、5。

  • 如果为0,则数组索引从0开始,到$number-1值结束。例$index为0,$number为4,则数组索引为:0、1、2、3。

  • 如果为负数,则数组索引由 $index012, ...,$number-2 组成。例$index为-2,$number为4,则数组索引为:-2、0、1、2。

在上例中,array_fill(0,4,"hello")$index为0(索引从0开始)、$number为4(数组有四个元素),因此数组索引为:0、1、2、3;而$valuehello,则这四个元素的键值都为hello,因此输出结果为:

1.png

在看两个示例:

<?php
$arr=array_fill(3,4,"hello");
var_dump($arr);
?>

分析:索引从3开始、到3+4-1=6结束,数组的键值都为hello,因此输出结果为:

2.png

<?php
$arr=array_fill(-2,4,"hello");
var_dump($arr);
?>

输出结果为:

3.png

$value参数不仅可以是单个数值/字符串,也可以是一个数组,那么创建的就是一个二维数组了。

<?php
header("Content-type:text/html;charset=utf-8");
$arr=array_fill(0,4,array("张三",25,"男"));
var_dump($arr);
?>

输出结果为:

4.png

4、使用array_fill_keys()函数

array_fill_keys():会以填充键名和键值的方式来创建一个新数组

<?php
$keys=array("a","b","c","d");
$arr=array_fill_keys($keys,"hello");
var_dump($arr);
?>

array_fill_keys($keys,$value)函数接受2个不可省略的参数$keys(包含填充键名的一个数组)、$value(填充键值)。

简单来说,array_fill_keys()函数会使用$keys数组中元素作为键名,$value作为值来填充出一个新数组。

从上面的代码示例可以看出:新数组有四个元素,键名分别为“a”、“b”、“c”、“d”;这四个元素的键值都为“hello”,因此输出结果为:

5.png

array_fill_keys()和array_fill()函数一样,$value值也可以接受一个数组,那么创建的就是一个二维数组了。

<?php
header("Content-type:text/html;charset=utf-8");
$keys=array("a","b","c","d");
$arr=array_fill_keys($keys,array("李四",21,"男"));
var_dump($arr);
?>

输出结果为:

6.png

5、使用array_combine()函数

array_combine()函数可以通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。

<?php
header("Content-type:text/html;charset=utf-8");
$keys=array("a","b","c","d");
$values=array("red","green","blue","yellow");
var_dump($keys);
var_dump($values);
echo "使用array_combine()合并数组后:";
var_dump(array_combine($keys,$values));
?>

输出结果为:

1.png

可以看出,上面的示例中使用array_combine($keys,$values)函数通过合并两个数组的方式创建了一个新数组,其中$keys数组中的元素作为了新数组的键名,$values数组的元素为作为了新数组的键值。

需要注意的是:

  • 使用array_combine()函数创建数组时,$keys数组和$values数组中的元素个数必须要一致,这才能让键名和键值一一对应,否则就会报错并返回 FALSE

  • $keys数组不可为多维数组,但$values数组可以为多维数组。

6、使用range() 函数

range() 函数创建一个包含指定范围的元素的数组。

语法:

range(low,high,step)
  • low 必需。规定数组元素的最小值。

  • high 必需。规定数组元素的最大值。

  • step 可选。规定元素之间的步进制。默认是 1。

该函数返回一个包含从 low 到 high 之间的元素的数组。

<?php
header("Content-type:text/html;charset=utf-8");
var_dump(range(0,5));
var_dump(range(0,5,2));
var_dump(range(0,20,5));
?>

7.png


创建php数组的方法有哪几种