首页 >后端开发 >PHP问题 >php的数组有几种类型

php的数组有几种类型

zbt
zbt原创
2023-06-12 11:33:531000浏览

php数组的类型:1、索引数组,存储一系列经过组织的单个或多个值,下标是数字;2、关联数组,是具有特殊索引方式的数组,下标为字符;3、多维数组,数据结构中的概念, 二维数组以上的数组,包含一个或多个数组的数组。

php的数组有几种类型

本教程操作环境:windows10系统、php8.1.3版本、DELL G3电脑。

数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体。PHP 中的数组较为复杂,但比其他许多高级语言中的数组更为灵活。

数组 array 是一组有序的变量,其中每个值被称为一个元素。每个元素由一个特殊的标识符来区分,这个标识符称为键(也称为下标)。

数组中的每个实体都包含两项,分别是键(key)和值(value)。可以通过键值来获取相应的数组元素,这些键可以是数值键,也可以是关联键。如果说变量是存储单个值的容器,那么数组就是存储多个值的容器。

PHP 数组比其他高级语言中的数组更加灵活,不但支持以数字为键名的索引数组,而且支持以字符串或字符串、数字混合为键名的关联数组。而在其他高级语言中,如 Java 或者 C++ 等语言的数组,只支持数字索引数组。

PHP 数组的结构如下图所示:

php数组的类型

索引数组:数组的下标是数字;

关联数组:数组的下标为字符是关联数组;

多维数组:包含一个或多个数组的数组;

注意:PHP中数组其实是不区分索引还是关联数组,都是根据键名找到对应的键值

1、索引数组

索引数组存储一系列经过组织的单个或多个值,其中的每个值都可以通过使用一个无符号整数值进行访问。索引数组的键是整数,而且从0开始以此类推。

索引数组初始化例:

<?php 
//创建一个索引数组,索引数组的键是“0”,值是“苹果” 
$fruit=array("苹果","香蕉"); 
print_r($fruit); 
?>

运行结果:

Array
(
    [0] => 苹果
    [1] => 香蕉
)

索引数组的三种赋值方式:

array[0]=&#39;苹果&#39;;
$arr=array(&#39;0&#39;=>&#39;苹果&#39;);
$arr=array(&#39;苹果&#39;);

例:

<?php 
//请创建一个数组变量arr,并尝试创建一个索引数组,键是0,值是苹果 
$arr=array(0=>&#39;苹果&#39;); 
if( isset($arr) ) {print_r($arr);} 
?>

用for与foreach可以访问到数组里面的元素,因for比较容易下面只举使用foreach的例子,

<?php 
$fruit=array(&#39;苹果&#39;,&#39;香蕉&#39;,&#39;菠萝&#39;); 
foreach($fruit as $key=>$value){ 
    echo &#39;<br>第&#39;.$key.&#39;值是:&#39;.$value; 
} 
   
?>

运行结果:

第0值是:苹果
第1值是:香蕉
第2值是:菠萝

注:这里$key是键值$value则是元素值

2、关联数组

“关联数组”是一种具有特殊索引方式的数组。使用字符串或者其他类型的值(除了NULL)来索引它。

其实关联数组和索引数组的差别只是在键值上,关联数组的键值是字符串,并且是人为的规定,例如:

<?php 
//创建一个关联数组,关联数组的键“orange”,值是“橘子” 
$fruit=array(&#39;orange&#39;=>&#39;橘子&#39;); 
echo $fruit[&#39;orange&#39;]; 
?>

其余初始化,赋值,foreach的用法基本相同。

3、多维数组

数据结构中的概念, 二维数组以上的数组,既非线性也非平面的数组成为多维数组。

<?php
    $arr = array(
        &#39;安徽&#39; => array(
            &#39;阜阳&#39;=>array(&#39;阜南县&#39;,&#39;临泉县&#39;,&#39;颍州区&#39;),
            &#39;宿州&#39;=>array(&#39;墉桥区&#39;,&#39;灵璧县&#39;,&#39;泗县&#39;),
            &#39;合肥&#39;=>array(&#39;蜀山区&#39;,&#39;长丰县&#39;,&#39;肥东&#39;)
        ),
        &#39;河南&#39; => array(
            &#39;洛阳&#39;=>array(&#39;西工区&#39;,&#39;老城区&#39;,&#39;孟津县&#39;),
            &#39;郑州市&#39;=>array(&#39;中原区&#39;,&#39;金水区&#39;)
        )
    );
    print_r($arr);
    echo $arr[&#39;安徽&#39;][&#39;宿州&#39;][0];  // 输出墉桥区
?>

其中“安徽”对应的是一个二维数组,“阜阳”“宿州”“合肥”分别对应一个一维数组;同理,“河南”也对应一个二维数组。“安徽”和“河南”分别对应一个二维数组,它俩组合起来形成一个三维数组。 PHP 中对多维数组没有上限的固定限制,但是随着维数的增加,数组会越来越复杂,对于阅读调试和维护都会稍微困难些。 以上程序的运行结果为:

Array
(
    [安徽] => Array
        (
            [阜阳] => Array
                (
                    [0] => 阜南县
                    [1] => 临泉县
                    [2] => 颍州区
                )
            [宿州] => Array
                (
                    [0] => 墉桥区
                    [1] => 灵璧县
                    [2] => 泗县
                )
            [合肥] => Array
                (
                    [0] => 蜀山区
                    [1] => 长丰县
                    [2] => 肥东
                )
        )
    [河南] => Array
        (
            [洛阳] => Array
                (
                    [0] => 西工区
                    [1] => 老城区
                    [2] => 孟津县
                )
            [郑州市] => Array
                (
                    [0] => 中原区
                    [1] => 金水区
                )
        )
)
墉桥区

以上是php的数组有几种类型的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn