首页课程PHP趣味闯关课堂数组的定义

数组的定义

目录列表

数组的定义

数组在之前我们让大家记住两个观点:

  • 数组可以存入多个不同类型的数据,甚至还可以存数组,这样的数组我们叫多维数组,是一个复合数据类型。

  • 数组的英文是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>';
?>

上面是这两种写法。当然,你自己喜欢使用哪一种就使用哪一种来声明。

填空,声明一个下标从1开始的索引数组。

$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) "可口可乐"
} 
*/
?>


填空,声明一个下标为‘name’的关联数组。

<?php $rela = ''=>'php中文网','age'3; var_dump($rela); ?>