我试图使用unshift将数组项移动到数组的顶部,但是我得到了意想不到的结果:
$all_people = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
$new_value = $all_people['Ben'];
array_unshift($all_people, $new_value);
在这里,我希望有一个数组,其中"Ben"=>"37
是第一项,但我最终得到了这个:
array(4) { [0]=> int(0) [1]=> string(5) "Peter" [2]=> string(3) "Ben" [3]=> string(3) "Joe" }
第一个元素是空的,“Ben”没有移动到我认为会发生的顶部。有人可以帮我吗? 谢谢!
答案 0 :(得分:2)
尝试使用php array union operator:
$all_people = array('Ben' => $all_people['Ben']) + $all_people;
union中的第一个值将始终为first,重复键将自动取消设置。因此,这一次只需要处理所有事情。
如果您的应用程序中经常需要这些功能,您也可以将其添加到函数中:
function moveToTop($array, $key) {
return array($key => $array[$key]) + $array;
}
$all_people = moveToTop($all_people,'Ben');
答案 1 :(得分:0)
以下是将任何元素移动到第一个元素的方法。
$all_people = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
$ben["Ben"] = $all_people["Ben"];
$all_people = $ben + $all_people;