PHP 数组


2021年12月16日, Learn eTutorial
3056

在本 PHP 教程中,您将学习有关 PHP 数组的所有知识。我们将详细讨论各种类型的数组,如索引数组、关联数组、多维数组,我们还将讨论数组函数。

PHP 中数组的含义是什么?

数组是 PHP 中的数据结构之一。数组用于在连续的内存位置存储相同类型的数据。我们可以在数组中存储任意数量的数据。“array ()” 函数用于在 PHP 中创建数组。数组主要有三种类型:索引数组、关联数组、多维数组。

Array

数组的优点是什么?

  • 更少的代码:通过使用数组,可以避免使用多个变量,并将相同类型的数据存储在单个数组变量中。
  • 易于遍历:我们只需使用一个循环即可遍历整个数组。
  • 排序:对数组中的元素进行排序更方便。

PHP 中不同类型的数组

  1. 索引数组
  2. 关联数组
  3. 多维数组

1. PHP 中的索引数组

索引数组是指每个元素都有一个索引值,从 0 开始。默认情况下,PHP 中的每个数组都是索引数组。PHP 中的索引数组可以用来存储整数、字符串或任何对象。PHP 中的索引数组也称为数字数组。

如何在 PHP 中创建索引数组?

在 PHP 中创建索引数组主要有两种方法

  1. 我们可以使用“array ()”函数创建数组
    
    $languages = array ("PHP", "Python", "GO", "JavaScript");
    foreach ($languages as $language) {
        echo "$language \n";
    }
     
    

    输出

    
    PHP 
    Python 
    GO 
    JavaScript
    

    在上面的示例中,我们可以看到我们使用“array ()”函数创建了数组。通过使用 array () 函数,我们可以通过传递所需的元素作为参数来创建数组,并且它将自动在每个位置进行索引。我们还使用 foreach 循环打印了数组的每个元素。

  2. 我们可以通过将值分配给数组的每个索引来创建数组
    
    $languages[0] = "PHP";
    $languages[1] = "Python";
    $languages[2] = "GO";
    $languages[3] = "JavaScript";
    
    foreach ($languages as $language) {
        echo "$language \n";
    }
    
     
    

    输出

    
    PHP 
    Python 
    GO 
    JavaScript
    

    在上面的示例中,我们可以看到我们通过手动将元素分配给数组的相应索引来创建了数组。这不是推荐的方法,因为它更耗时,并且还会增加代码。我们还使用 foreach 循环打印了数组的每个元素。

PHP 中的关联数组

索引数组是指数组中的每个元素都以名称或键而不是索引存储的数组。在 PHP 中,键值对是使用“=>”符号创建的。在 PHP 中,由于每个元素都由标签而不是递增的数字表示,因此您可以轻松记住它。 

如何在 PHP 中创建关联数组?

  1.  我们可以使用“array ()”函数创建数组
    
    $ages = array ("Jhon" => 23, "Roy" => 15, "Justin" => 20, "Bob" =>27);
    foreach ($ages as $name=>$age) {
        echo "$name is $age years old \n";
    }
    

    输出

    
    Jhon is 23 years old 
    Roy is 15 years old 
    Justin is 20 years old 
    Bob is 27 years old
    
    

    在上面的示例中,我们可以看到我们使用“array()”函数创建了数组。通过使用 array() 函数,我们可以通过传递所需的元素及其对应的键作为参数来创建数组。我们还使用 foreach 循环打印了数组的每个元素。

  2. 我们可以通过将值分配给数组的每个索引来创建数组
    
    $ages["Jhon"] = 23;
    $ages["Roy"] = 15;
    $ages["Justin"] = 20;
    $ages["Bob"] = 27;
    
    foreach ($ages as $name=>$age) {
        echo "$name is $age years old \n";
    }
    

    输出

    
    Jhon is 23 years old 
    Roy is 15 years old 
    Justin is 20 years old 
    Bob is 27 years old
    
    

    在上面的示例中,我们可以看到我们通过手动将元素分配给数组的相应键来创建了数组。这不是推荐的方法,因为它更耗时,并且还会增加代码。我们还使用 foreach 循环打印了数组的每个元素。

PHP 中的多维数组

在 PHP 中,多维数组用于在数组本身中存储数组。它有助于以表格形式存储数据。PHP 多维数组可以表示为矩阵,以行 * 列表示。

如何在 PHP 中创建多维数组?


$students = array  
  (  
  array(1,"Bob",20),  
  array(2,"John",21),  
  array(3,"Roy",20)  
  );  
for ($row = 0; $row < 3; $row++) {  
  for ($col = 0; $col < 3; $col++) {  
    echo $students[$row] [$col]."  ";  
  }  
  echo "\n";  
}

输出


1  Bob  20  
2  John  21  
3  Roy  20  

在上面的示例中,我们可以看到要创建多维数组,我们必须在一个数组中创建多个数组。通过这种方式,我们可以以矩阵形式存储元素。我们还打印了数组的每个元素。

PHP 中使用的数组函数

PHP 有许多数组方法用于访问和操作数组中的元素。下面列出了最常用的数组函数。

  1. array() 函数:PHP array() 函数用于创建和返回数组。它用于创建索引数组、关联数组和多维数组。语法:
    
    array(value1, value2, value3, ...);
     
    
    
    $languages = array ("PHP", "Python", "GO", "JavaScript");
    echo $languages[2]; 
     
    

    输出

    
    GO
    
  2. array_change_key_case() 函数:PHP array_change_key_case() 函数用于更改数组中元素键的大小写。语法:
    
    array_change_key_case(array, case);
     
    
    
    $ages = array ("Jhon" => 23, "Roy" => 15, "Justin" => 20, "Bob" =>27);
    print_r(array_change_key_case($ages,CASE_UPPER));   
     
    

    输出

    
    Array
    (
        [JHON] => 23
        [ROY] => 15
        [JUSTIN] => 20
        [BOB] => 27
    )
    
  3. array_chunk() 函数:PHP array_chunk() 函数用于将数组拆分为多个部分。语法:
    
    array_chunk(array, size, preserve_key);
     
    
    
    $ages = array ("Jhon" => 23, "Roy" => 15, "Justin" => 20, "Bob" =>27);
    print_r(array_chunk($ages,2));   
     
    

    输出

    
    Array
    Array
    (
        [0] => Array
            (
                [0] => 23
                [1] => 15
            )
    
        [1] => Array
            (
                [0] => 20
                [1] => 27
            )
    
    )
    
  4. count() 函数:PHP count() 函数用于返回数组中元素的数量。语法:
    
    count(array, mode(optional));
    
    
    
    $languages = array ("PHP", "Python", "GO", "JavaScript");
    echo count($languages);
    
    

    输出

    
    4
    
  5. list() 函数:PHP list() 函数用于在一个操作中将数组中的元素分配给变量。语法:
    
    list(var1, var2, ...)
    
    
    
    $languages = array ("PHP", "Python", "GO", "JavaScript");
    list($a, $b, $c, $d) = $languages;
    echo $a. "\n";
    echo $b. "\n";
    echo $c. "\n";
    echo $d. "\n";
    
    

    输出

    
    PHP
    Python
    GO
    JavaScript
    
  6. sort() 函数:PHP sort() 函数用于按顺序排序数组  语法:
    
    sort(array, sorttype (optional));
    
    
    
    $languages = array ("PHP", "Python", "GO", "JavaScript");
    sort($languages);
    print_r($languages);
    
    

    输出

    
    Array
    (
        [0] => GO
        [1] => JavaScript
        [2] => PHP
        [3] => Python
    )
    
  7. array_reverse () 函数:PHP array_reverse () 函数用于将数组按相反顺序排列。语法:
    
    array_reverse(array, preserve);
    
    
    
    $languages = array ("PHP", "Python", "GO", "JavaScript");
    print_r(array_reverse($languages));
    
    

    输出

    
    Array
    (
        [0] => JavaScript
        [1] => GO
        [2] => Python
        [3] => PHP
    )
    
  8. array_search() 函数:PHP array_search() 函数用于在数组中搜索元素,如果该值存在于数组中,则返回其索引或键。语法:
    
    array_search(value, array, strict(optional));
    
    
    
    $languages = array ("PHP", "Python", "GO", "JavaScript");
    echo array_search("GO", $languages);
    
    

    输出

    
    2
    
  9. array_merge() 函数:PHP array_merge() 函数用于合并两个或更多数组。语法:
    
    array_merge(array1, array2, array3, ...);
    
    
    
    $languages1 = array ("GO", "JavaScript");
    $languages2 = array ("PHP", "Python");
    print_r(array_merge($languages1, $languages2));
    
    

    输出

    
    Array
    (
        [0] => GO
        [1] => JavaScript
        [2] => PHP
        [3] => Python
    )
    
  10. array_intersect () 函数:PHP array_intersect () 函数用于比较两个或更多数组并返回公共元素。语法:
    
    array_intersect(array1, array2, array3, ...);
    
    
    
    $languages1 = array ("GO", "JavaScript", "R");
    $languages2 = array ("PHP", "Python", "GO", "R");
    print_r(array_intersect($languages1, $languages2));
    
    

    输出

    
    Array
    (
        [0] => GO
        [2] => R
    )