一、开场白:PHP世界的“收纳狂”和“规矩怪”
刚学PHP那会儿,你肯定被它的松散类型惯坏了——变量不用声明类型,随手$a = 123; $b = "你好";简直自由得像在逛菜市场。但当你开始写正经项目时,光靠散装变量肯定不行,得把数据“打包”。这时候,PHP的复合数据类型就登场了:数组(Array) 和对象(Object)。
这俩兄弟性格截然不同:
- 数组像你宿舍里那个啥都往床上扔的室友,袜子、书本、零食混作一团,但找起来居然还能摸到;
- 对象则像实验室穿白大褂的学长,每支试管必须贴标签放固定位置,流程严格却高效。
下面咱们就掰开揉碎,看看这俩到底怎么用,以及为啥你经常在别人的代码里看到它们“互相演”。
二、数组:PHP的灵魂缝合怪
1. 数组是啥?一个“万能钥匙抽屉”
PHP的数组本质上是个有序映射(ordered map),翻译成人话就是“键值对集合”。但它牛在:
- 键可以是整数或字符串;
- 值可以是任意类型(字符串、数字、甚至另一个数组);
- 不需要预先定义长度,随时增删。
这就好比你的钥匙抽屉:有的钥匙挂标签(字符串键),有的直接按顺序扔(整数键),还能在抽屉里再放个小抽屉(嵌套数组)。
2. 数组的两种写法:简单粗暴 vs 优雅清晰
早期风格(现在也常用):
$student = array("张三", 18, "男"); // 索引数组,自动分配数字键 0,1,2
$score = array("语文" => 90, "数学" => 85); // 关联数组,自定义字符串键
短数组语法(PHP 5.4后推荐):
$student = ["张三", 18, "男"];
$score = ["语文" => 90, "数学" => 85];
短写法更简洁,而且方括号在JSON时代看着亲切,建议无脑用这个。
3. 数组操作:增删改查“一条龙”
// 1. 查:根据键取值
echo $score["语文"]; // 输出 90
// 2. 增:直接赋值新键
$score["英语"] = 88; // 自动增加一个键值对
// 3. 删:unset 掉某个键
unset($score["数学"]); // 数学成绩消失了,但键不会重新排列(注意!)
// 4. 遍历:foreach 是亲爹
foreach($score as $subject => $point) {
echo "科目:$subject,分数:$point\n";
}
坑点提醒:unset删除数组元素后,数字索引不会自动重排!比如:
$arr = [10, 20, 30];
unset($arr[1]);
print_r($arr); // 输出 [0=>10, 2=>30],中间缺了 1</

最低0.47元/天 解锁文章
1527

被折叠的 条评论
为什么被折叠?



