PHP中如何定义多维数组及获取其中元素
本篇内容主要讲解“PHP中如何定义多维数组及获取其中元素”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP中如何定义多维数组及获取其中元素”吧!
二维数组
上文中我们说了,当一个数组中的元素就是另一个数组的时候,这个构成包函数组的数组就是二维数组,二维数组简单地理解为数组的数组。那它的声明方式和普通的数组有没有区别呢?
二维数组和一维数组的的声明方式是一样的,只是将数组中的一个或者多个元素也声明成了一个数组,同时也有直接为数组元素赋值和使用array() 函数两种声明二维数组的方法。
下面我们通过示例来看一下使用直接为数组元素赋值的方式来声明一个数组,示例如下:
<?php $array[0]['name'] = 'father'; $array[0]['year'] = '1949'; $array[0]['age'] = '72'; $array[1]['name'] = 'mother'; $array[1]['year'] = '1949'; $array[1]['age'] = '72'; echo '<pre>'; print_r($array);?>
输出结果:
在上述示例中,这是使用了直接为数组元素赋值的方式来声明了一个数组,接下来我们看一下通过array()
函数来声明一个二维数组的情况,示例如下:
<?php $array = array( array('name'=>'father','year'=>'1949','age'=>'72'), array('name'=>'mother','year'=>'1949','age'=>'72') ); echo '<pre>'; print_r($array);?>
输出结果与上述示例中的输出结果一致。
声明了一个二位数组后,想要获取其中的元素也是很简单的,和一维数组也是类似的,只需要注明每个维度的下标就行了。
接下来我们通过示例来看一下怎样获取二位数组中的元素,示例如下:
<?php $array = array( array('name'=>'father','year'=>'1949','age'=>'72'), array('name'=>'mother','year'=>'1949','age'=>'72') ); echo '<pre>'; print_r($array); echo $array[0]['name'].'在'.$array[0]['year'].'年出生,今年已经'.$array[0]['age'].'岁了<br/>'; echo $array[1]['name'].'在'.$array[1]['year'].'年出生,今年已经'.$array[1]['age'].'岁了';?>
输出结果:
其中我们需要注意的是:数组的不同维度标志着我们需要使用几个下标来获取对应的数组元素,比如二维数组需要使用两个下标来获取对应的数组元素,三维数组则需要三个,以此类推。
有时我们希望用一个以上的键来保存数据,这样就需要用到PHP的多维数组来实现了。不过,有时希望用一个以上的键存储值。这时候就可以用多维数组进行存储。接下来我们来看一下多维数组。
多维数组
除了二维数组外,PHP 还支持三维数组、四维数组甚至更加多维度的数组,这里可以统称为多维数组,不过数组超过三维之后可读性就会大大降低,同时也不便于管理。
参考二维数组,举一反三,可以很容易地创建三维数组、四维数组或者其他更高维数的数组。接下来我们通过示例来看一下三维数组是怎样定义的,示例如下:
<?php $arr = array( '中国' => array( '安徽'=>array('合肥','蚌埠','芜湖'), '江苏'=>array('南京','徐州','苏州'), '浙江'=>array('杭州','宁波','温州') ), '美国' => array( '阿拉斯加州'=>array('朱诺','安克雷奇'), '路易斯安那州'=>array('新奥尔良','巴吞鲁日'), '加利福尼亚州'=>array('洛杉矶','萨克拉门托') ) );echo '<pre>'; print_r($arr); echo $arr['中国']['安徽'][0]; // 输出合肥?>
输出结果:
到此,相信大家对“PHP中如何定义多维数组及获取其中元素”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341