今日精选岗位:PHP工程师,1个超精选回答获得BOSS内推,HR已邀面试。
如果是你,能回答出来吗?
岗位描述
PHP工程师
职位描述:
1、负责后端系统开发;
2、研究新兴技术,持续优化系统架构;
3、负责所属模块详细设计文档撰写、编码、单元测试等工作;
4、严格遵守团队的代码规范、结构的规定,编写易读、易维护、高质量、高效率的代码。
任职要求:
1、精通PHP开发语言,熟悉Apache、Nginx、Mysql、ThinkPHP 、Laravel 的原理;
2、熟悉多种缓存实现机制与策略、熟悉Memcache、Redis开发;
3、有nosql数据库经验的优先;
4、有运维经验优先;
5、有良好的团队合作能力,善于沟通热爱编程;
6、有微信小程序以及公众号平台开发经验者优先;
7、有大型项目开发经验,具有不错的学习能力者优先。
岗位提问
如何从一个php数组中删除一个元素?
有没有一种简单的方法可以使用PHP从数组中删除元素,以便foreach($ array)不再包含该元素?
精选回答
有多种删除数组元素的方法,其中某些方法对某些特定任务比其他方法更有用。
删除单个数组元素
如果只是想删除一个数组元素,那么可以用unset()或者array_splice()
如果只知道value而不知道key,那么可以使用array_search()去获取key值。
unset()
当使用unset()时,数组键不会更改/重新索引。如果要重新索引键,可以在unset()之后使用 array_values(),它将所有键转换为从0开始的数字枚举键。
Code:
$array = [0 => "a", 1 => "b", 2 => "c"];
unset($array[1]); //key对应的元素将会被删除
?>
Output:
[
[0] => a
[2] => c
]
array_splice()
如果使用array_splice(),则键将自动重新索引,但是关联键不会更改,而array_values()会将所有键转换为数字键。
这里需要注意的是,array_splice()的第二个、第三个参数分别是偏移量和长度,这里不需要传入键值。
Code:
$array = [0 => "a", 1 => "b", 2 => "c"];
array_splice($array, 1, 1); //偏移量是1,长度是1
?>
Output:
[
[0] => a
[1] => c
]
array_splice()与unset()相同,它通过引用来获取数组!
删除多个数组元素
如果要删除多个数组元素并且不想多次调用unset()或array_splice(),则可以根据是否知道其中的值或键来使用函数array_diff()或array_diff_key()。
array_diff()
如果知道要删除的数组元素的值,则可以使用array_diff()。与以前一样,使用unset()不会更改/重新索引数组的键。
Code:
$array = [0 => "a", 1 => "b", 2 => "c"];
$array = array_diff($array, ["a", "c"]); // 你想要删除的数组元素
?>
Output:
[
[1] => b
]
array_diff_key()
如果知道要删除元素的键值,那么可以使用array_diff_key()。在这里,必须确保将键作为第二个参数中的键而不是值来传递。否则,必须使用array_flip()翻转数组。而且这里的键不会更改/重新索引。
Code:
$array = [0 => "a", 1 => "b", 2 => "c"];
$array = array_diff_key($array, [0 => "xy", "2" => "xy"]); // 你想删除元素的键
?>
Output:
[
[1] => b
]
同样,如果要使用unset()或array_splice()删除具有相同值的多个元素,则可以使用array_keys()获取特定值的所有键,然后删除所有元素。
看完精选答案是不是跃跃欲试呢?快快快扫码进群,用实力赢offer!