上一节我们简单地认识了PHP中的数组,包括索引数组和关联数组,本节我们将详细介绍PHP索引数组的实用技巧。

索引数组

1. 数组创建和初始化

<?php 
/* 1. 创建数组 */
$arr = array(1, 2, 3);// 创建数组
$arr = [1, 2, 3]; // 短数组语法
/*2. 范围数组*/
$numbers = range(1, 5); // [1, 2, 3, 4, 5]
$letters = range('a', 'e'); // ['a', 'b', 'c', 'd', 'e']
/*3. 填充数组*/
$filled = array_fill(0, 5, 'Dotcpp编程'); // ['Dotcpp编程', 'Dotcpp编程', 'Dotcpp编程', 'Dotcpp编程', 'Dotcpp编程']
?>


2. 添加和删除元素

<?php 
$arr = [1, 2, 3];//准备一个数字数组
// 末尾添加
array_push($arr, 4, 5); // [1, 2, 3, 4, 5]
$arr[] = 6; // [1, 2, 3, 4, 5, 6]
// 开头添加
array_unshift($arr, 0); // [0, 1, 2, 3, 4, 5, 6]
// 末尾删除
$last = array_pop($arr); // $last = 6, $arr = [0, 1, 2, 3, 4, 5]
// 开头删除
$first = array_shift($arr); // $first = 0, $arr = [1, 2, 3, 4, 5]
?>


3. 数组遍历

<?php 
$courses = ['C语言教程', '数据结构教程', 'Java教程', 'JavaScript教程', 'Linux命令', '算法竞赛教程'];
// foreach 遍历
foreach ($courses as $course) {
    echo $course . '<br>';
}
// 带索引的遍历
foreach ($courses as $index => $course) {
    echo "$index: $course\n";
}
// 使用 array_walk
array_walk($courses, function($value, $key) {
    echo "$key: $value\n";
});
?>

访问test.php:

索引数组遍历的三种技巧


4. 数组排序

<?php 
$numbers = [3, 1, 4, 1, 5, 9, 2];
// 升序排序
sort($numbers); // [1, 1, 2, 3, 4, 5, 9]
// 降序排序
rsort($numbers); // [9, 5, 4, 3, 2, 1, 1]
?>


5. 数组搜索和判断

<?php 
$arr = [10, 20, 30, 40, 50];
// 检查值是否存在
$is_exist = in_array(30, $arr); // true
?>


6. 数组切片和分割

<?php 
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
// 切片
$slice = array_slice($arr, 2, 4); // [3, 4, 5, 6]
// 分割成块
$chunks = array_chunk($arr, 3); // [[1,2,3], [4,5,6], [7,8,9]]
// 取一部分
$part = array_splice($arr, 2, 3); // 从原数组删除 [3,4,5],返回它们
?>


7. 数组合并和连接

<?php 
$arr1 = [1, 2, 3];
$arr2 = [4, 5, 6];
$arr3 = [7, 8, 9];
// 数组合并
$mergedArr = array_merge($arr1, $arr2, $arr3); // [1,2,3,4,5,6,7,8,9]
// 数组连接
$combinedArr = [...$arr1, ...$arr2]; // 展开运算符 [1,2,3,4,5,6]
?>


总结:学习并熟练运用PHP索引数组的使用技巧,是 PHP 开发中必备的基础知识。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)