二维数组就是“数组里套数组”,取值靠两层下标:外层定位到哪一行,内层定位到那一行里的哪个键。
键名数组用 $arr['行']['列'],数字下标用 $arr[0][1],写几个中括号就往下取几层。只想取某一列的所有值,直接用 array_column(),不用自己循环。
<?php
$users = [
['id' => 1, 'name' => '张三'],
['id' => 2, 'name' => '李四'],
];
echo $users[0]['name']; // 张三:先定位第 0 行,再取 name
echo $users[1]['id']; // 2
// 取整列,返回 ['张三', '李四']
$names = array_column($users, 'name');
// 遍历时逐行取,$user 就是里面的一维数组
foreach ($users as $user) {
echo $user['name'];
}
// 键可能不存在时先判断,避免报 Undefined index
if (isset($users[0]['name'])) {
echo $users[0]['name'];
}
要改值也是同一套路:$users[0]['name'] = '王五'; 直接赋值覆盖,不需要先删。