数组在之前我们让大家记住两个观点:
数组可以存入多个不同类型的数据,甚至还可以存数组,这样的数组我们叫多维数组,是一个复合数据类型。
数组的英文是array,学一了一下最简单的数组声明。
那我们来进行简单的回顾:
<?php $shu = array(1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇'); echo '<pre>'; var_dump($shu); echo '</pre>'; ?>
打印结果:
/* array(4) { [0]=> int(1) [1]=> float(1.5) [2]=> bool(true) [3]=> string(33) "天王盖地虎,小鸡炖蘑菇" } */
在上例中,我们发现存入了多种类型的数据:
整型
浮点型
布尔型
字符串
我们仔细观察一下上面的结果,你会发现以下几个特点:
array(size = 4) 说明里面有4个元素
0 => int 1 我们知道int是整型的意思,1是一个整型的数值。那前面的0,1,2,3和=>代表什么意思呢?
最新前的0,1,2,3代表的是值的读取标识号,我们称之为下标或者键(英文:key)
=> 是一个符号标准叫法叫作:键值对应符。因此,以后再看到 0=> int 1 可以这样来说。 下标访问符0对应整型的1。
我们还称数组里面的键值对为元素,元素就是键值对的组合。
我们通过上例,其实你一不小心的就完成了数组其中的一种声明方式:索引数组的声明哟。
$class (1,2,'年级');
所谓索引数组:就是下标全为整型的数组。
索引数组的下标必须要从0开始吗?
答:索引数组并不一定要从0开始。
那如何能够不从0开始呢?
答:需要用到大家在上面学的一小块知识哟。就是键值对应符。我们来动手写写:
<?php $kele = array(5=>'我',20=>'PHP中文网'); //打印显示$kele echo '<pre>'; var_dump($kele); echo '</pre>'; ?>
结果:
/* array(2) { [5]=> string(3) "我" [20]=> string(12) "PHP中文网" } */
这样写你再看看结果是不是下标就不再是0了吧。
每次用array()写的太麻烦了,还可以不用写array哟,更简单。
实例:
<?php $minren = [ '杨幂', '王珞丹', 100 => '刘亦菲', '黄圣依', '范冰冰' ]; echo '<pre>'; var_dump($minren); echo '</pre>'; ?>
上面是这两种写法。当然,你自己喜欢使用哪一种就使用哪一种来声明。
$minren = ( 'hello','php_cn');
索引数组适当的变一下形就出现了关联数组。只要数组里面有一个下标为字符串的数组,就为关联数组。
通过上例中,我们发现数组的下标只能够为字符串,当然不能够满足我的需求。
假设我想声明一个下标为帅对应陈奕迅这个值。肯定不能满足我的需求。
那我们来声明一下关联数组。跟索引数组的声明方式完成一样。不过不同的是,必须要指定字符串的下标和必须要使用键值对应符。
例如:
<?php //声明一下关联数组 $rela = array( '帅' => '陈奕迅', '很帅' => '黄晓明', '灰常灰常帅' => '宁泽涛', '有男人味的大叔' => '吴秀波', ); //再来玩玩简洁声明 $drink = [ '美' => '凤姐', '很美' => '芙蓉姐姐', 'verymei' => '杨幂', '心中滴女神呀' => '华妃', 100 => '孙俪', '娘娘', ]; // 输出 $rela echo '<pre>'; var_dump($rela); // 输出$drink var_dump($drink); echo '</pre>'; ?>
结果:
/* array(4) { ["帅"]=> string(9) "陈奕迅" ["很帅"]=> string(9) "黄晓明" ["灰常灰常帅"]=> string(9) "宁泽涛" ["有男人味的大叔"]=> string(9) "吴秀波" } array(6) { ["美"]=> string(6) "凤姐" ["很美"]=> string(12) "芙蓉姐姐" ["verymei"]=> string(6) "杨幂" ["心中滴女神呀"]=> string(6) "华妃" [100]=> string(6) "孙俪" [101]=> string(6) "娘娘" } */
我们通过实验知道:
声明关联数组是 键名 => 值
在关联数组可以有索引数组的元素
关联数组中的索引数组的元素后再声明了无下标的元素,依然是最大值+1原则。(观察上图中的值为孙俪、娘娘的两个元素)。
其他的关联数组声明方式:
<?php $drink['nf'] = '农夫山泉'; $cocacola = '可口可乐'; //当然可以是变量哟 $drink['kl'] = $cocacola; $data = array( 'kl' => $cocacola, ); echo '<pre>'; var_dump($drink); echo '</pre>'; // 结果 /* array(2) { ["nf"]=> string(12) "农夫山泉" ["kl"]=> string(12) "可口可乐" } */ ?>
<?php $rela = ''=>'php中文网','age'3; var_dump($rela); ?>