PHP数组


数组是一种数据结构,它将一个或多个相似类型的值存储在单个值中。例如,如果你想存储100个数字,那么不用定义100个变量就可以很容易地定义一个长度为100的数组。

有三种不同类型的数组,每个数组值使用称为数组索引的ID c来访问。

  • 数字数组 - 具有数字索引的数组。 数值以线性方式存储和访问。

  • 关联数组 - 包含字符串作为索引的数组。 这将元素值与关键值相关联存储,而不是以严格的线性索引顺序存储。

  • 多维数组 - 使用多个索引访问包含一个或多个数组和值的数组

- 内置的数组函数在函数引用PHP数组函数中给出

数字数组

这些数组可以存储数字,字符串和任何对象,但它们的索引将用数字表示。默认情况下,数组索引从零开始。

以下是显示如何创建和访问数值数组的示例。

这里我们使用 array() 函数来创建数组。该功能在功能参考中进行了说明。

<html>
 <body>

    <?php
       /* First method to create array. */
       $numbers = array( 1, 2, 3, 4, 5);

       foreach( $numbers as $value ) {
          echo "Value is $value <br />";
       }

       /* Second method to create array. */
       $numbers[0] = "one";
       $numbers[1] = "two";
       $numbers[2] = "three";
       $numbers[3] = "four";
       $numbers[4] = "five";

       foreach( $numbers as $value ) {
          echo "Value is $value <br />";
       }
    ?>

 </body>
</html>

这将产生以下结果 -

Value is 1
Value is 2
Value is 3
Value is 4
Value is 5
Value is one
Value is two
Value is three
Value is four
Value is five

关联数组

就功能而言,关联数组与数值数组非常相似,但它们在索引方面有所不同。关联数组将索引作为字符串,以便您可以在键和值之间建立强关联。

要将员工的工资存储在数组中,数字索引数组不是最佳选择。相反,我们可以使用员工姓名作为关联数组中的键,值将是他们各自的薪水。

- 打印时不要将关联数组保留在双引号内,否则它不会返回任何值。

<html>
 <body>

    <?php
       /* First method to associate create array. */
       $salaries = array("mohammad" => 2000, "qadir" => 1000, "zara" => 500);

       echo "Salary of mohammad is ". $salaries['mohammad'] . "<br />";
       echo "Salary of qadir is ".  $salaries['qadir']. "<br />";
       echo "Salary of zara is ".  $salaries['zara']. "<br />";

       /* Second method to create array. */
       $salaries['mohammad'] = "high";
       $salaries['qadir'] = "medium";
       $salaries['zara'] = "low";

       echo "Salary of mohammad is ". $salaries['mohammad'] . "<br />";
       echo "Salary of qadir is ".  $salaries['qadir']. "<br />";
       echo "Salary of zara is ".  $salaries['zara']. "<br />";
    ?>

 </body>
</html>

这将产生以下结果 -

Salary of mohammad is 2000
Salary of qadir is 1000
Salary of zara is 500
Salary of mohammad is high
Salary of qadir is medium
Salary of zara is low

多维数组

主阵列中的每个元素也可以是一个多维数组。并且子数组中的每个元素都可以是一个数组,等等。多维数组中的值可以使用多个索引进行访问。

在这个例子中,我们创建了一个二维数组来存储三个学科的三个学生的标记 -

这个例子是一个关联数组,你可以用同样的方式创建数组。

<html>
 <body>

    <?php
       $marks = array(
          "mohammad" => array (
             "physics" => 35,
             "maths" => 30,
             "chemistry" => 39
          ),

          "qadir" => array (
             "physics" => 30,
             "maths" => 32,
             "chemistry" => 29
          ),

          "zara" => array (
             "physics" => 31,
             "maths" => 22,
             "chemistry" => 39
          )
       );

       /* Accessing multi-dimensional array values */
       echo "Marks for mohammad in physics : " ;
       echo $marks['mohammad']['physics'] . "<br />";

       echo "Marks for qadir in maths : ";
       echo $marks['qadir']['maths'] . "<br />";

       echo "Marks for zara in chemistry : " ;
       echo $marks['zara']['chemistry'] . "<br />";
    ?>

 </body>
</html>

这将产生以下结果 -

Marks for mohammad in physics : 35
Marks for qadir in maths : 32
Marks for zara in chemistry : 39