了解PHP数组
来源:互联网 发布:软件过程和软件工程 编辑:程序博客网 时间:2024/06/01 19:58
1.前言
- 数组能够在单独的变量名中存储一个或多个值。
<?php$cars=array("Volvo","BMW","SAAB");echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";?>
- 数组可以存入多个不同类型的数据,是一个复合数据类型。
<?php //整型,浮点,布尔,字符串 $arr = array(1 , 1.5 , true ,'小鸡炖蘑菇'); var_dump($arr);?>
在 PHP 中,有三种数组类型:
- 索引数组 - 带有数字索引的数组
- 关联数组 - 带有指定键的数组
- 多维数组 - 包含一个或多个数组的数组
2.索引数组
有两种创建索引数组的方法:
索引是自动分配的(索引从 0 开始)
<?php //整型,浮点,布尔,字符串 $arr = array(1 , 1.5 , true ,'小鸡炖蘑菇'); var_dump($arr);?>
运行结果:
手动分配索引(索引可以不从0开始)
<?php$test = array( 5 => '只有不断努力才能博得未来', 10 => 'NoAlike', 'PHP学院' , 'learn php', 19 => '赵子龙' , '荆轲刺秦王' );var_dump($test);?>
运行结果:
注意:- 索引数组若不强制声明他的下标,他的下标是从0开始的。
- 如果指定过下标他的下标就为指定的值。如下标为10和下标为19。
- 若某个值强制指定了下标(下标为10)。在它后面加上的值(PHP学院),不指定下标的话。他们的下标增长规律为最大值+1。
2.1.向索引数组中增加元素
<?php $minren = array( '赵云', '魏延', '黄忠', '马超' ); $minren[] = '刘玄德'; $minren[100] = '张飞'; $minren[] = '关羽'; var_dump($minren)?>
运行结果:
总结:
1. 向索引数组中增加元素用: 数组变量名[]、数组变量名[键值]这两种方式来增加元素
2. 键值的增长规则与之前的规则一样。都是最大值加1的原则。
2.2.从索引数组中删除元素
<?php $minren = array( '赵云', '魏延', '黄忠', '马超', '关羽' ); unset($minren[3]);//删除马超 $minren[] = '张飞';//增加张飞 var_dump($minren)?>
运行结果:
总结:
1. 使用unset删除变量的方式来删除数组里面的值。
2. 删除了中间的值,并不会让后面的下标向前自动移动。而是原来的值为多少就为多少
3. 删除掉其中的某个值,新加入的值不会替换掉原来的位置,依然遵循最大值加1的原则。
2.3.从索引数组中修改元素
<?php $minren = [ '赵云', '魏延', '黄忠', '马超', '关羽' ]; $minren[2] = '黄忠怒斩夏侯渊'; var_dump($minren)?>
用变量名[键] = 新值。就把数组中的指定的值修改了。
3. 关联数组
<?php//声明关联数组$rela = array( '帅' => '霍建华', '很帅' => '黄晓明', '灰常灰常帅' => '胡歌', '有男人味的大叔' => '吴秀波',);//简洁声明$drink = [ '美' => '刘亦菲', '很美' => '杨幂', '非常美' => '刘诗诗', '女神呀' => '黄蓉', 100 => '蓉儿', '蓉妹妹', ];var_dump($rela);var_dump($drink);?>
运行结果:
总结:
1. 声明关联数组是 键名 => 值
2. 在关联数组可以有索引数组的元素
3. 关联数组中的索引数组的元素后再声明了无下标的元素,依然是最大值+1原则。
3.1 关联数组增、删、改
<?php$drink = [ '美' => '刘亦菲', '很美' => '杨幂', '非常美' => '刘诗诗', '女神呀' => '黄蓉', 100 => '蓉儿', '蓉妹妹', ];$drink['美女'] = '我的黄蓉啊';//增加元素var_dump($drink);unset($drink['很美']);//删除元素var_dump($drink);$drink['非常美'] = '大幂幂';//修改元素var_dump($drink);?>
运行结果
4.多维数组
- 一维数组 数组里面没有其他数组,只有单纯的一些变量或者值。
- 二维数组 数组里面插入了单层的一个数组,或者多个数组。
- 三维数组 在数组(A)里面插入了一个数组(B),在B数组里面又插入了一层级的数组(C),这种我们就称为三维数组。
- 超过三维的,统统都叫多维数组。
二维数组
<?php$person = array( 'office' => '办公室', 'family' => array( '爸爸', '妈妈', 'yeye' => '爷爷', 'nn' => '奶奶', ), 'transport' => array( '自行车', '摩托车', '汽车', '飞机', ),);var_dump($person);echo $person['family'][0];//访问“爸爸”echo $person['family']['yeye'];//访问“爷爷”echo $person['transport'][2];//访问“汽车”?>
三维数组
<?php$area = array( 'china' => array( '上海', '湖北', '天津', '北京' => array( 'hd' => '海淀', '朝阳', '房山', 'cp' => '昌平', ), '广东' => array( '深圳', '广州', '佛山', 'dg' => '东莞', ), ), 'usa' => array( '华盛顿', '旧金山', '纽约' => array( '曼哈顿区', '皇后区', '布鲁克林区', ), ),);var_dump($area);echo $area['usa']['0'];//读取华盛顿echo $area['usa']['纽约'][2];//读取:布鲁克林echo $area['china']['北京']['cp'];//读取:昌平$area['china']['北京']['cp'] = '西城区';//修改cp下标的值改为:西城区echo $area['china']['北京']['cp'];//输出看看原来昌平的值是否发生了变化?>
说明
在变量$area下有二个数组,一个为china,一个为usa。在china这个数组里面插入了上海、湖北、天津,又插入了北京和广东。而北京和广东又是一个数组。在北京和广东这两个数组里面分别有不同的元素。
在这usa 这个数组里面插美国的华盛顿、旧金山和纽约。而纽约下面又是一个数组,说明了纽约下面的几个区。
所以说,三维数组就是在数组里面再插入一个数组(A),在A数组里面插入一个数组。
5.数组的操作-遍历数组
for循环遍历数组
<?php// 1.遍历下标连续的索引数组$cars=array("Volvo","BMW","SAAB");for($x=0;$x<count($cars);$x++) {//count() 函数用于返回数组的长度(元素数) echo $cars[$x]; echo "<br>";}?>
foreach遍历数组
<?php//遍历关联数组$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>";}// 遍历下标连续的索引数组$data = array(1,2,3,4,5,6,7,8,9,10);foreach($data as $k => $v){ echo $k . '------' . $v .'<br />';}// 遍历下标不连续的索引数组$data = array(1,2,3,4,5,6,10 => 7,8,9,10);foreach($data as $k => $v){ echo $k . '------' . $v .'<br />';}?>
foreach遍历多维数组
<?php$data = array( 0 => array( '中国' => 'china', '美国' => 'usa', '德国' => ' Germany', ), 1 => array( '湖北' => 'hubei', '河北' => 'hebei', '山东' => 'shandong', '山西' => 'sanxi', ),);//注:我们在使用foreach循环时,第一次循环将键为0和键为1的两个数组赋值给一个变量($value)。然后,再套一个循环遍历这个$value变量,$value中的值取出来,赋值给$k和$v。foreach($data as $value){ foreach($value as $k => $v){ echo $k . '-----' . $v .'<br />'; } echo '----------分割线-----------<br />';}?>
0 0
- 了解PHP数组
- php 初级教程 对数组的了解
- 深入了解PHP类型戏法 (array)var 强制数组转换
- 了解php
- 了解PHP
- 5种PHP创建数组的方式,你都了解哪些?
- 数组的一些了解
- 初步了解树状数组
- 柔性数组的了解
- 二维数组了解
- PHP基础知识了解
- php(了解即可)
- php SimpleXMLElement 简要了解
- 深入了解php.ini
- php 需要了解的
- Swoole-PHP了解
- php header 了解
- php Hash函数了解
- 计算机程序的思维逻辑 (69)
- C语言的&(取地址)和*的正确理解
- UnityEditor 反射事件2
- struts中验证机制
- CCF201604(2)模拟俄罗斯方块下落
- 了解PHP数组
- 桌面分享
- box-sizing小解
- ccf试题 画图
- Linux例行性工作调度
- Minimum Moves to Equal Array Elements II 题解
- UVALive 3971 组装电脑
- 度量值(v$metricname v$metric)
- 随笔1:为什么copy函数需要定义中间指针get