一个数组$a0有N个元素,要将其中第3个元素,排在数组的首位。
第一种做法是:
取出第3个元素,赋值给变量$a
unset 第3个元素
array_unshift 将$a添加到数组头部。
如果是数字下标的数组,这样是可以的。可如果是字符串做为下标,array_unshift会破坏下标,都变成了数字,以0开始计数。
解决方案为:
取出第3个元素,定义成一个单一数组 $a1
unset第3个元素,更新数组$a0
array_merge($a1,$a0)。
使用 array_merge 不会破坏数组下标。
示例:
<?php $array1 = array ( 0 => array ( 'top' => 'true', 'path' => 'cPath=9', 'current' => false, 'name' => 'Women', 'image' => NULL, 'has_sub_cat' => true, ), 1 => array ( 'top' => 'true', 'path' => 'cPath=10', 'current' => false, 'name' => 'Men', 'image' => NULL, 'has_sub_cat' => false, ), 2 => array ( 'top' => 'true', 'path' => 'cPath=1', 'current' =>

在PHP中,当需要将数组中的某个元素置顶并保持原有下标不变时,可以避免使用array_unshift导致的下标破坏。通过取出指定元素,unset原位置,然后用array_merge合并数组来实现。示例代码展示了如何操作,另外array_splice也是一个可行的选择。
最低0.47元/天 解锁文章
2153

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



