索引数组与关联数组
创建并访问 PHP 的这两种数组。
索引数组与关联数组 是 CoddyKit 上的免费 PHP Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 PHP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 PHP Academy 课程共包含 4 节课。
PHP 中的数组
PHP 数组是有序映射,可以充当列表、字典、栈和队列。主要有两种类型:
- 索引数组:使用数字键(0、1、2……)
- 关联数组:使用字符串键
创建索引数组
使用简短数组语法 [] 或 array():
<?php
$colors = ['red', 'green', 'blue']; // short syntax
$nums = array(10, 20, 30); // long syntax
echo $colors[0]; // red
echo $nums[2]; // 30
echo count($colors); // 3添加和删除元素
使用 [] 追加元素,使用 unset() 删除元素:
<?php
$items = ['a', 'b', 'c'];
$items[] = 'd'; // append
$items[] = 'e';
unset($items[1]); // remove 'b'
print_r($items);
// [0=>'a', 2=>'c', 3=>'d', 4=>'e'] — index gap!关联数组
使用字符串键创建类似字典的结构:
<?php
$person = [
'name' => 'Alice',
'age' => 30,
'email' => 'alice@example.com',
];
echo $person['name']; // Alice
$person['city'] = 'London'; // add new key
unset($person['email']); // remove key检查键是否存在
检查数组中是否存在某个键或值:
<?php
$config = ['debug' => false, 'version' => '2.0'];
var_dump(array_key_exists('debug', $config)); // true
var_dump(isset($config['debug'])); // false! debug=false, not NULL
var_dump(in_array('2.0', $config)); // truearray_key_exists 与 isset
对于值为 NULL 的键,isset() 返回 false;而 array_key_exists() 即使遇到 NULL 值也会返回 true:
<?php
$data = ['key' => null];
var_dump(isset($data['key'])); // false
var_dump(array_key_exists('key', $data)); // true数组解构
使用简短列表语法将数组解构到变量中:
<?php
$point = [10, 20, 30];
[$x, $y, $z] = $point;
echo "x=$x y=$y z=$z"; // x=10 y=20 z=30
// Skip elements
[, $second] = [1, 2, 3];
echo $second; // 2合并数组
使用 array_merge() 或展开运算符合并数组:
<?php
$a = ['x' => 1, 'y' => 2];
$b = ['y' => 99, 'z' => 3];
$merged = array_merge($a, $b);
print_r($merged); // x=>1, y=>99 (b overwrites), z=>3
$union = $a + $b;
print_r($union); // x=>1, y=>2 (a wins), z=>3数组切片
使用 array_slice() 提取数组的一部分:
<?php
$letters = ['a', 'b', 'c', 'd', 'e'];
$slice = array_slice($letters, 1, 3);
print_r($slice); // ['b', 'c', 'd']
$last2 = array_slice($letters, -2);
print_r($last2); // ['d', 'e']栈和队列操作
PHP 数组也可以充当栈和队列:
<?php
$stack = [];
array_push($stack, 'a', 'b');
$top = array_pop($stack); // 'b' — LIFO
$queue = ['first', 'second'];
array_push($queue, 'third');
$front = array_shift($queue); // 'first' — FIFO
array_unshift($queue, 'zero'); // prependcompact 和 extract
compact() 根据变量名称构建关联数组;extract() 则执行相反的操作:
<?php
$name = 'Alice';
$age = 30;
$data = compact('name', 'age');
// ['name' => 'Alice', 'age' => 30]
extract(['city' => 'London', 'country' => 'UK']);
echo $city; // London
echo $country; // UK快速检查
当键存在但其值为 NULL 时,array_key_exists('key', $arr) 会返回什么?
回顾:索引数组和关联数组
PHP 数组基础:
- 索引数组使用数字键,关联数组使用字符串键
- 使用
$arr[] = value追加元素 - 检查键:比较
array_key_exists()与isset() - 使用
[$a, $b] = $arr进行解构 - 使用
array_merge()或+合并数组(覆盖规则不同) - 栈和队列操作:入栈、出栈、移除首项、首部插入
用 AI 导师学习 PHP — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 49
- 课程
- 195
常见问题解答
「索引数组与关联数组」课时是免费的吗?
是的 — 「索引数组与关联数组」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 PHP Academy 课程的其余内容,请升级到 CoddyKit PRO。 PHP Academy 课程共包含 4 节课。
「索引数组与关联数组」这节课中我会学到什么?
创建并访问 PHP 的这两种数组。 你通过在浏览器中直接运行的动手代码来练习 PHP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 PHP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 PHP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「索引数组与关联数组」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 PHP Academy 课中编写并运行代码吗?
能。每节 PHP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。