PHP数组创建、遍历与常用函数实战指南
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编程资料的文章请持续关注本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









