PHP 简单、关联、多维、多维关联数组

前言

本文简记数组、关联数组、多维数组、多维关联混合数组的格式、调用、添加、删除。

特别注意

  • 注意 1

    索引或者 key 基本上是一个东西,只不过 key => value 是将索引设定为自己的 key 值。

    key 值可以是数字,也可以是字符串。

  • 注意 2

    如果自己声明时 key 值是数字,将会替换系统默认的索引为 key 对应的 value 。

  • 注意 3

    如果自己声明时 key 值是字符串,但是是整数,系统将自动去掉引号。

    $numbers['1'] 等同于 $numbers[1]

  • 注意 4

    数组在执行添加时,未曾添加或者删除过的索引项,在执行添加操作时,无论索引是数字,还是字符串,无论数字是否比之前最大的索引值大,还是字符串的字母大小比之前最大的索引值大,都是在数组末尾添加。

    比如向索引只有 0、2 的数组 array(2) {[0]=> int(0) [2]=> int(2)} 中添加索引为 1 的元素 $numbers[1] = 1; 结果为:

    array(3) {
      [0]=> int(0)
      [2]=> int(2)
      [1]=> int(1)
    }
    
  • 注意 5

    数组在执行删除时,与 "注意 4" 同理。

数组

格式

  • 示例

    $numbers = [0, 1, 2, 3];
    

    本质:

    array(4) {
      [0]=> int(0)
      [1]=> int(1)
      [2]=> int(2)
      [3]=> int(3)
    }
    

调用

  • 指定 key (索引)调用:

    这时的 key 就是默认的索引顺序。

    echo $numbers['1']."<br>";
    或
    for ($n = 0; $n<4; $n++) {
        echo $numbers[$n]."<br>";
    }
    
  • foreach 遍历调用:

    foreach ($numbers as $number) {
        echo $number."<br>";
    }
    
  • foreach 遍历调用变形:

    foreach ($numbers as $number) :
        echo $number."<br>";
    endforeach;
    

    一般用于 PHP 文件的 HTML 中:

    <ul>
        <?php foreach ($numbers as $number) : ?>
        <li><?php echo $number;?></li>
        <?php endforeach; ?>
    </ul>
    

添加

  • 添加声明:

    数组长度加 +1 ,添加在末尾。

    $numbers[] = 4;
    
  • 指定 key (索引)添加:

    $numbers[5] = 5;
    $numbers['5'] = 5;
    

删除

  • 指定索引删除:

    unset($numbers[1]); 
    
  • 指定 key 删除:

    这时的 key 就是默认的索引顺序。

    unset($numbers['1']); 
    

关联数组

格式

  • 示例:

    $numbers = [
        'zero' => 0,
        'one' => 1,
        'two' => 2,
        'three' => 3];
    

    本质:

    array(4) {
      ["zero"]=> int(0)
      ["one"]=> int(1)
      ["two"]=> int(2)
      ["three"]=> int(3)
    }
    

调用

  • 指定 key (索引)调用:

    这里的索引就是 key 。

    echo $numbers['zero']."<br>";
    
  • foreach 遍历 value 调用:

    foreach ($numbers as $number) {
        echo $number."<br>";
    }
    
  • foreach 遍历 key => value 调用:

    foreach ($numbers as $numberName => $number) {
        echo "name:".$numberName."<br>number:".$number."<hr>";
    }
    

添加

  • 注意:这时指定索引添加,使用的索引就是它的 key :

    $numbers[1] = 4;
    $numbers['1'] = 4;
    
  • 指定 key 添加:

    $numbers['four'] = 4;
    

删除

  • 指定 key (索引)删除:

    这里的索引就是 key 。

    unset($numbers['one']);
    

多维数组

格式

  • 示例:

    $numbers = [
        [0, 1],
        [1, 2],
        [2, 3],
        [3, 4]
    ];
    

    本质:

    array(4) {
      [0]=> array(2) {
        [0]=> int(0)
        [1]=> int(1)
      }
      [1]=> array(2) {
        [0]=> int(1)
        [1]=> int(2)
      }
      [2]=> array(2) {
        [0]=> int(2)
        [1]=> int(3)
      }
      [3]=> array(2) {
        [0]=> int(3)
        [1]=> int(4)
      }
    }
    

调用

  • 多维索引指定调用:

    对于多维数组来说,通过单个索引得到的变量也是一个数组。当直接 echo 数组变量时,会报错。

    echo $numbers[0][0]."<br>";
    
  • foreach 遍历 value 调用:

    foreach ($numbers as $number) {
        foreach ($number as $num) {
            echo $num."<br>";
        }
        echo "<hr>";
    }
    

添加

  • 添加声明:

    数组长度加 +1 ,添加在末尾。

    $numbers[] = [4, 5];
    
  • 指定 key (索引)添加:

    $numbers[4] = [4, 5];
    $numbers['4'] = [4, 5];
    

删除

  • 指定一级索引删除一级数组:

    这时删除了索引为 1 的整个数组,多维数组中一级数组个数 -1 。

    unset($numbers[1]);
    
  • 指定多维索引删除最后一级数组/元素:

    这时只删除了索引为 1 数组内的第一个元素。

    unset($numbers[1][1]);
    

多维关联混合数组

格式

  • 示例:

    $numbers = [
        'zero' => ['zero0' => 0, 'zero1' => 1],
        'one' => ['one1' => 1, 'one2' => 2],
        'two' => ['two1' => 2, 'two2' => 3],
        'three' => ['three1' => 3, 'three2' => 4]
    ];
    
  • 本质:

    array(4) {
      ["zero"]=> array(2) {
        ["zero0"]=> int(0)
        ["zero1"]=> int(1)
      }
      ["one"]=> array(2) {
        ["one1"]=> int(1)
        ["one2"]=> int(2)
      }
      ["two"]=> array(2) {
        ["two1"]=> int(2)
        ["two2"]=> int(3)
      }
      ["three"]=> array(2) {
        ["three1"]=> int(3)
        ["three2"]=> int(4)
      }
    }
    

调用

  • 指定多维 key (索引)调用:

    echo $numbers['zero']['zero1']."<br>";
    
  • foreach 多维遍历 value 调用:

    foreach ($numbers as $number) {
        foreach ($number as $num) {
            echo $num."<br>";
        }
        echo "<hr>";
    }
    
  • foreach 多维遍历 key => value 调用:

    foreach ($numbers as $numberKey => $numberValue) {
        foreach ($numberValue as $numKey => $numValue) {
            echo $numberKey." => ".$numKey." => ".$numValue."<br>";
        }
        echo "<hr>";
    }
    

添加

  • 指定 key 添加:

    数组长度加 +1 ,添加在末尾。

    $numbers['four'] = ['four1' => 4, 'four2' => 5];
    

删除

  • 指定一级 key 删除一级关联数组:

    这时删除了整个 one 关联数组。

    unset($numbers['one']);
    
  • 指定多维 key 删除最后一级关联数组/元素:

    这时只删除了 one 关联数组内的第一个 key => value。

    unset($numbers['one']['one1']);
    
posted @ 2020-08-23 01:32  Yogile  阅读(244)  评论(0编辑  收藏  举报