PHP数组操作:你真的掌握了键值对的添加技巧吗?

今天我们来聊聊PHP数组添加键和值的那点事。数组这东西,简单起来像喝水,复杂起来像喝了一锅开水,烫得你嗷嗷叫。

我们来看最基本的操作。假设你有一个数组:

$myArray = array();

你想往里面添加一个键值对,比如键是'name',值是'John',你可以这样操作:

$myArray['name'] = 'John';

简单?就像往冰箱里塞了一瓶可乐。

但如果你手贱,写成了这样:

注意,这里键名'name'没加引号。PHP会以为你定义了一个常量,然后报错。所以,记住,键名要加引号,除非你想被PHP的报错信息鞭打。

我们稍微复杂一点。假设你有一个多维数组:

$myArray = array(

'person' => array(

'name' => 'John',

'age' => 30

)

);

你想在'person'下面再加一个键值对,比如'email' => 'john@example.com',你可以这样操作:

$myArray['person']['email'] = 'john@example.com';

这样,数组就变成了这样:

'age' => 30,

'email' => 'john@example.com'

)

);

看起来还行?但如果你不小心写错了键名,比如:

$myArray['Person']['email'] = 'john@example.com';

注意,这里的'Person'首字母大写了。PHP不会报错,但你会发现,你的数组里凭空多了一个'Person'键,而原来的'person'键还在那里,像极了你前女友和你现女友碰面的尴尬场景。

所以,大小写敏感这个坑,一定要注意。

我们来看看更复杂的情况。假设你有一个数组,里面存了一些用户信息:

$users = array(

array(

'id' => 1,

),

);

你想给每个用户添加一个'status'键,值为'active',你可以这样操作:

foreach ($users as &$user) {

$user['status'] = 'active';

}

注意,这里的&$user是引用传递,这样你可以直接修改原数组。如果你不小心写成这样:

你会发现,数组并没有被修改。这是因为$user是值传递,修改的是局部变量,而不是原数组。这个坑,相信很多人踩过。

我们来看看PHP数组的一些高级操作。$myArray = array('apple', 'banana', 'cherry');

你想在数组开头添加一个元素,比如'orange',你可以用array_unshift函数:

array_unshift($myArray, 'orange');

这样,数组就变成了:

$myArray = array('orange', 'apple', 'banana', 'cherry');

简单?就像往队伍前面插队一样简单。

如果你想在数组末尾添加一个元素,比如'kiwi',你可以用array_push函数:

array_push($myArray, 'kiwi');

$myArray = array('orange', 'apple', 'banana', 'cherry', 'kiwi');

这个操作就像排队买奶茶,大家都乖乖地往后站。

array_push($myArray, 'kiwi', 'lemon', 'mango');

你会发现,数组变成了:

$myArray = array('orange', 'apple', 'banana', 'cherry', 'kiwi', 'lemon', 'mango');

没错,array_push可以一次性添加多个元素。这个功能,有时候很方便,有时候也让人头疼。

我们来看看PHP数组的合并操作。假设你有两个数组:

$array1 = array('apple', 'banana');

$array2 = array('cherry', 'date');

你想把这两个数组合并成一个,你可以用array_merge函数:

$newArray = array_merge($array1, $array2);

结果是这样的:

$newArray = array('apple', 'banana', 'cherry', 'date');

看起来还行?但如果你有相同的键名,比如:

$array1 = array('fruit' => 'apple', 'color' => 'red');

$array2 = array('fruit' => 'banana', 'taste' => 'sweet');

你再用array_merge:

你会发现,'fruit'键的值被覆盖了:

$newArray = array('fruit' => 'banana', 'color' => 'red', 'taste' => 'sweet');

所以,合并数组时,相同键名的值会被覆盖,这一点要注意。

如果你不想被覆盖,可以用+操作符:

$newArray = $array1 + $array2;

结果是这样的:

$newArray = array('fruit' => 'apple', 'color' => 'red', 'taste' => 'sweet');

这里的规则是,左边数组的键值优先保留,右边数组的键值只有在左边数组没有的情况下才添加。

我们来看看PHP数组的键值对删除操作。$myArray = array('name' => 'John', 'age' => 30, 'email' => 'john@example.com');

你想删掉'age'这个键值对,你可以用unset函数:

unset($myArray['age']);

$myArray = array('name' => 'John', 'email' => 'john@example.com');

简单?就像从冰箱里扔出一瓶过期的可乐。

但如果你不小心写成了这样:

unset($myArray[age]);

注意,这里的'age'没加引号。所以,键名要加引号,除非你想被PHP报错信息再次鞭打。

我们来看看PHP数组的遍历操作。你想遍历这个数组,打印每个元素,你可以这样操作:

foreach ($myArray as $value) {

echo $value . "\n";

}

输出结果是:

apple

banana

cherry

简单?就像数钱一样简单。

但如果你还想获取键名,你可以这样操作:

foreach ($myArray as $key => $value) {

echo $key . ':' . $value . "\n";

}

输出结果是:

0: apple

1: banana

2: cherry

这个操作,有时候很有用,特别是当你需要处理键值对的时候。

好了,关于PHP数组添加键和值的那点事,我们就聊到这里。虽然看起来简单,但里面的坑不少。希望你能从这篇冷幽默的文章中学到点什么,至少下次不会被PHP的报错信息鞭打到怀疑人生。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值