博客列表 >数组与关联数组创建,访问数组数组,创建并循环输出二维三维数组,以及不规则数组循环输出 - 第九期线上班20191114

数组与关联数组创建,访问数组数组,创建并循环输出二维三维数组,以及不规则数组循环输出 - 第九期线上班20191114

MArtian
MArtian原创
2019年11月15日 15:46:54757浏览

创建数组

$var = array(
    'Hello',
    'World');  $var = [
    'Hello',
    'World'];

创建数组可以使用$var = []$var = array()两种方式。 数组中每个值都对应一个键(下标),默认从0开始。

关联数组

关联数组要自定义键(下标),使用=>

链接符号 '键(下标)' => '值'
$var = ['name' => 'James','age' => '35','position' => 'SF'];

输出数组可以使用print_r,可以把数组中所有的值打印出来:

print_r($var);//Array ( [name] => James [age] => 35 [position] => SF )

访问数组数据

如果要访问数组中单独一个键的值,可以使用数组['键(下标)'],来索引数组的值输出

$var = ['name' => 'James','age' => '35','position' => 'SF'];echo $var['age'];// 35

定义二维数组

$players = [
    [
        'name' => 'James',
        'age' => '35',
        'position' => 'SF' 
    ],
    [
        'name' => 'Allen',
        'age' => '38',
        'position' => 'SG' 
    ],
    [
        'name' => 'Griffin',
        'age' => '32',
        'position' => 'PF' 
    ]];

访问多维数组的数据时,先调用数组$players,再找到下一层数组的键(下标),['skills'],再用同样的方法找到数组的键值对。

数组+['键(下标(数组))']+['数组中的键值']

二维数组循环

foreach ($players as $v) {
    echo '姓名' . $v['name'];
    echo '<br>';
    echo '年龄' . $v['age'];
    echo '<br>';
    echo '位置' . $v['position'];
    echo '<br>';
    echo '<hr>'; }

2array.png

定义三维数组

$players = [
    [
        'name' => 'James',
        'age' => '35',
        'position' => 'SF',
        'skills' => [
            'score',
            'rebound',
            'dribbble',
            'organization'
        ]
    ],
    [
        'name' => 'Allen',
        'age' => '38',
        'position' => 'SG',
        'skills' => [
            'score',
            '3point',
            'dribbble'
        ]
    ],
    [
        'name' => 'Griffin',
        'age' => '32',
        'position' => 'PF',
        'skills' => [
            'defence',
            'rebound',
            'score'
        ]
    ]];print_r($players[1]['skills'][2]);

访问三维数组方式与二维数组方式相同,找到嵌套数组的键值后面接索引就可以调用嵌套数组的值了。
$players调用数组,[1]键值找到第二个嵌套数组,['skills'],键值找到第三个嵌套数组,[2]第三个嵌套数组的第三个值。

三维数组循环

foreach($players as $v){
    echo '姓名:'. $v['name'].'---';
    echo '年龄:'. $v['age'].'---';
    echo '位置:'. $v['position'].'---';
    echo '技能:';
    foreach($v['skills'] as $skill){
        echo $skill.'-';
    }
    echo '<hr>';}

3array.png

不规则数组循环输出

以上二维三维数组循环输出都是规则数组,每个数组的数据排列都是相同的,那么在不同排列数据的数组中应该怎么输出?

$players = [
    'name' => 'James',
    'age' => '35',
    'position' => 'SF',
    'skills' => [
        'score',
        'rebound',
        'dribbble',
        'organization'
    ]];

以上是一个不规则二维数组,如果正常使用foreach,则嵌套数组skills不会被输出,这个时候需要用到判断:

foreach($players as $v){
    if(is_array($v)){
        foreach($v as $value){
            echo $value. ' ';
        }
    }
    else{
        echo $v;
        echo '<br>';
    }}

4array.png

因为$players数组中有一个键值对[skills]是数组,其他都是数值,所以每次循环的时候都要判断一下该键指向的是数组还是值,如果是数组,则再次循环该数组内的键值对。

总结

1.数组中每个存储的数据都对应一个键(下标),通过该键(下标)可以索引数组内的值。

2.关联数组可以自定义键(下标),需要使用数组连接符 'key' => 'value'

3.多维数组数据访问通过数组键(下标),依次查找。

4.foreach循环参数($数组 as $键 => $值),如果没有键 ($数组 as $值),值的名字是自定义形参,指向的是每个从数组键[0]到结束的值。

5.不规则嵌套数组,可以用if(is_array($值)),先判断该键存储的是值,还是数组,如果是数组,再执行foreach()循环该嵌套数组。

1.jpg2.jpg3.jpg

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议