PHP 数组之PHP基础入门教程

什么是数组?

在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量,无需很多相似的变量,你可以把数据作为元素存储在数组中,数组中的元素都有自己的 ID,因此可以方便地访问它们。

有三种数组类型:

数值数组:带有数字 ID 键的数组,数值数组存储的每个元素都带有一个数字 ID 键.

关联数组:数组中的每个 ID 键关联一个值.

多维数组:包含一个或多个数组的数组.

可以使用不同的方法来创建数值数组:

数值数组:

例子 1,在这个例子中,会自动分配 ID 键,代码如下:

$names = array("Peter","Quagmire","Joe");

例子 2,在这个例子中,我们人工分配的 ID 键,代码如下:

  1. $names[0] = "Peter";
  2. $names[1] = "Quagmire";
  3. $names[2] = "Joe";可以在脚本中使用这些 ID 键:
  4. <?php
  5. $names[0] = "Peter";
  6. $names[1] = "Quagmire";
  7. $names[2] = "Joe";
  8. echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors";
  9. ?>
  10. //以上代码的输出:
  11. //Quagmire and Joe are Peter's neighbors

关联数组

关联数组,它的每个 ID 键都关联一个值。

在存储有关具体命名的值的数据时,使用数值数组不是最好的做法,通过关联数组.我们可以把值作为键.并向它们赋值。

例子1,在本例中,我们使用一个数组把年龄分配给不同的人,代码如下:

$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);

例子2,本例与例子 1 相同,不过展示了另一种创建数组的方法,代码如下:

  1. $ages['Peter'] = "32";
  2. $ages['Quagmire'] = "30";
  3. $ages['Joe'] = "34";

可以在脚本中使用 ID 键,代码如下:

  1. <?php
  2. $ages['Peter'] = "32";
  3. $ages['Quagmire'] = "30";
  4. $ages['Joe'] = "34";
  5. echo "Peter is " . $ages['Peter'] . " years old.";
  6. ?>
  7. //以上脚本的输出:
  8. //Peter is 32 years old.

多维数组

在多维数组中,主数组中的每个元素也是一个数组,在子数组中的每个元素也可以是数组,以此类推。

例子1,在本例中,我们创建了一个带有自动分配的 ID 键的多维数组,代码如下:

  1. $families = array
  2. (
  3. "Griffin"=>array
  4. (
  5. "Peter",
  6. "Lois",
  7. "Megan"
  8. ),
  9. "Quagmire"=>array
  10. (
  11. "Glenn"
  12. ),
  13. "Brown"=>array
  14. (
  15. "Cleveland",
  16. "Loretta",
  17. "Junior"
  18. )
  19. );
  20. /*
  21. 如果输出这个数组的话,应该类似这样:
  22. Array
  23. (
  24. [Griffin] => Array
  25. (
  26. [0] => Peter
  27. [1] => Lois
  28. [2] => Megan
  29. )
  30. [Quagmire] => Array
  31. (
  32. [0] => Glenn
  33. )
  34. [Brown] => Array
  35. (
  36. [0] => Cleveland
  37. [1] => Loretta
  38. [2] => Junior
  39. )
  40. )
  41. */

例子 2,让我们试着显示上面的数组中的一个单一的值,代码如下:

  1. echo "Is " . $families['Griffin'][2] .
  2. " a part of the Griffin family?";
  3. //以上代码的输出:
  4. //Is Megan a part of the Griffin family?