PHP数组创建、遍历与常用函数实战指南

陆遥
陆遥
发布时间:2026-10-13 | 2人浏览过
原创

PHP数组是开发中核心的数据结构。本文详解数组的定义方法,演示如何使用compact、array_combine、range和array_fill等内置函数快速生成复杂数组,并对比分析foreach、while结合list以及for循环在遍历一维和二维数组时的实际应用。

数组定义基础

在PHP中,使用array()结构体可以灵活定义数组。无论是包含数值、字符串的索引数组,还是键值关联数组,乃至多维数组,均可以通过此语法实现。空数组可通过直接传入空括号定义。

第1步:定义不同类型的数据集合

  • 数值与字符串索引数组:直接使用逗号分隔元素,如定义颜色或数字序列。
  • 自定义键名数组:使用箭头=>指定特定的键,适用于需要明确标识数据的场景。
  • 多维数组:将数组作为其他数组的元素,注意各层级间的逗号连接规范(除最后一项外)。
<?php
// 基本索引数组
$number = array(1, 3, 5, 7, 9);
$result = array();
$color = array("red", "blue", "green");

// 自定义键值的关联数组
$language = (1 => "English", 3 => "Chinese", 5 => "Franch");

// 二维/多维数组示例
$two = array(
    "color" => array("red", "blue"), // 注意此处需加逗号
    "week" => array("Monday", "Friday") // 最后一行通常省略分号前的逻辑断点,但在array()内需符合语法
);
?>

数组的快速创建函数

除了直接赋值,PHP提供了多个用于动态生成数组的函数,能显著提升处理批量数据时的代码效率。

第1步:使用 compact() 将变量转为数组

compact()函数接收一组变量名(字符串形式),将这些变量的名称作为数组的键,变量的当前值作为数组的值。它常用于调试或需要将当前作用域下的多个变量打包的场景。

<?php
$number = "1,3,5,7,9";
$string = "I'm PHPer";
$array_item = array("And", "You?");

// 注意参数传的是变量名字符串,而非带$的变量本身
$newArray = compact("number", "string", "array_item");
print_r($newArray);
?>

其逆操作可使用extract(),该函数会将数组的键名转换为变量名,数组值赋给对应变量。但在使用时需注意变量覆盖风险。

第2步:使用 array_combine() 合并两个数组

当有两个长度相同的数组,且希望将其中一个作为键、另一个作为值形成新数组时,array_combine()是最直接的工具。

<?php
$keys = array("1", "3", "5", "7", "9");
$values = array("I", "Am", "A", "PHP", "er");

// 第一个参数作为键,第二个参数作为值
$combined = array_combine($keys, $values);
print_r($combined);
?>

第3步:使用 range() 生成范围序列

range()函数可按指定的步长生成连续的数字或字母数组。这在生成日期、编号列表或字母表时非常有用。

<?php
// 生成0到100,步长为10的数字数组
$nums = range(0, 100, 10);

// 生成A到Z的大写字母数组
$lettersUpper = range("A", "Z");

// 生成z到a的小写字母倒序数组
$lettersLower = range("z", "a");
?>

第4步:使用 array_fill() 填充重复内容

如果需要创建一个所有元素都相同,或具有特定模式结构的数组,array_fill()和array_fill_keys()十分便捷。前者按索引位置填充,后者允许自定义键名。

<?php
// 从索引0开始,填充5次子数组
$subArray = range("a", "d");
$filledArray = array_fill(0, 5, $subArray);

// 使用指定键名填充统一值
$keys = array("name", "age", "score");
$keyedFill = array_fill_keys($keys, "test_value");
?>

数组的高效遍历方法

获取数组后,遍历提取数据是关键步骤。针对一维和二维数组,选择合适的遍历方式能让代码更清晰。

第1步:使用 foreach 遍历关联与索引数组

foreach是PHP中遍历数组最推荐的方式,语法简洁且不易出错。它可以同时访问键(Key)和值(Value)。

<?php
$speed_limits = array(50, 120, 180, 240, 380);

foreach ($speed_limits as $index => $limit) {
    echo "Index: $index, Value: $limit <br />";
}
?>

第2步:使用 while 配合 list 处理多维数组

在处理表格型二维数组(如数据库结果集模拟)时,while循环结合each()和list()可以逐行解构内部数组。虽然此写法较传统,但在理解数组指针移动机制上很有价值。

<?php
$staff_data = array(
    array("Name", "Gender", "Age"),
    array("张三", "男", 24),
    array("李四", "女", 25)
);

while (list($row_index, $person) = each($staff_data)) {
    list($name, $gender, $age) = $person;
    // 在实际应用中通常会输出HTML Table行
    echo "$name | $gender | $age<br>";
}
?>

第3步:使用 for 循环基于索引遍历

如果只需要数组中的值,且清楚数组的长度,可以使用标准的for循环。这依赖于count()函数获取元素总数,仅适用于索引数组(连续整数下标)。

<?php
$ranges = range(0, 220, 20);
$count = count($ranges);

for ($i = 0; $i < $count; $i++) {
    echo $ranges[$i] . "   ";
}
?>

以上就是PHP数组创建、遍历与常用函数的详细内容,更多关于PHP编程资料的文章请持续关注本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表