数组

PHP 教程 · 第 8 章 · 8 次浏览

PHP 数组是有序键值对映射,可作索引数组、关联数组、多维数组使用,非常灵活。

创建与访问

短数组语法 [...](推荐)。索引数组下标从 0 开始;关联数组用字符串键。count() 获取长度。

常用函数

  • 增删:array_push / array_pop / array_shift / array_unshift
  • 查找:in_array / array_search / array_key_exists
  • 排序:sort / rsort / asort / ksort
  • 处理:array_map / array_filter / array_merge / array_slice
  • 字符串互转:implode / explode

代码示例

<?php
// 索引数组
$fruits = ["苹果", "香蕉", "橙子"];
echo $fruits[0];             // 苹果
array_push($fruits, "葡萄");
echo "<br>" . count($fruits);   // 4

// 关联数组
$user = [
    "name" => "小王",
    "age" => 25,
    "city" => "烟台"
];
echo "<br>" . $user["name"];

// 多维数组
$students = [
    ["name" => "小王", "score" => 92],
    ["name" => "小李", "score" => 88]
];
echo "<br>" . $students[0]["name"] . ":" . $students[0]["score"];

// 常用函数
$nums = [3, 1, 4, 1, 5];
sort($nums);                 // 升序排序
echo "<br>" . implode(",", $nums);   // 1,1,3,4,5

$even = array_filter($nums, fn($n) => $n % 2 == 0);
echo "<br>偶数:" . implode(",", $even);   // 4

// 遍历
foreach ($user as $k => $v) {
    echo "<br>$k = $v";
}
?>
📚 PHP 语法速查
常用条目速查,完整版见对应教程章节。可复制代码到在线运行中测试。
写法 / 语法作用
&lt;?php ... ?&gt;PHP 代码块标记
echo "hello";输出字符串
$name = "张三";变量(以 $ 开头,无需声明类型)
if ($x > 0) { } else { }条件判断
foreach ($arr as $k => $v) { }遍历数组(最常用)
for ($i = 0; $i < 10; $i++) { }计数循环
function fn($a) { return $a; }定义函数
array("a" => 1)关联数组(PHP 的"字典")
count($arr)数组长度
isset($x) / empty($x)变量是否存在 / 是否为空
$_GET["key"] / $_POST["key"]获取表单 / 查询参数
$_SESSION["user"]会话数据读写(需 session_start())
$_COOKIE["key"]读取 Cookie
header("Location: /index.php");页面跳转
mysqli_connect($host, $user, $pass, $db)连接 MySQL(旧接口,新项目用 PDO)
new PDO($dsn, $user, $pass)连接 MySQL(推荐,防 SQL 注入)
$stmt->prepare($sql)预处理语句(防 SQL 注入)
htmlspecialchars($str)HTML 转义(防 XSS)
strlen($s) / mb_strlen($s)字符串长度
explode(",", $s) / implode(",", $arr)字符串拆分 / 拼接
json_encode($arr) / json_decode($s)数组与 JSON 互转
include / require引入文件(require 报错即停)
date("Y-m-d H:i:s")当前时间格式化
$_FILES["file"]文件上传数据
file_put_contents($path, $data)写入文件