首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在PHP中将数组元素移到顶部

在PHP中将数组元素移到顶部
EN

Stack Overflow用户
提问于 2011-03-15 22:01:40
回答 5查看 28.3K关注 0票数 13
代码语言:javascript
代码运行次数:0
运行
复制
$arr = array(
    'a1'=>'1',
    'a2'=>'2'
);

我需要将a2移到顶部,同时保持a2作为关键字我该如何继续下去我似乎不能想出一种不搞乱的方法:)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-15 22:03:45

您可以通过以下方式来实现:

代码语言:javascript
代码运行次数:0
运行
复制
$arr = array(
    'a1'=>'1',
    'a2'=>'2'
);

end($arr);

$last_key     = key($arr);
$last_value   = array_pop($arr);
$arr          = array_merge(array($last_key => $last_value), $arr);

/*
    print_r($arr);

    will output (this is tested):
    Array ( [a2] => 2 [a1] => 1 )
*/
票数 14
EN

Stack Overflow用户

发布于 2011-10-07 20:24:44

下面是一个可以正确使用数字键和字符串键的解决方案:

代码语言:javascript
代码运行次数:0
运行
复制
function move_to_top(&$array, $key) {
    $temp = array($key => $array[$key]);
    unset($array[$key]);
    $array = $temp + $array;
}

它之所以有效,是因为PHP中的数组是有序映射。

顺便说一句,要将一项移动到底部,请使用:

代码语言:javascript
代码运行次数:0
运行
复制
function move_to_bottom(&$array, $key) {
    $value = $array[$key];
    unset($array[$key]);
    $array[$key] = $value;
}
票数 60
EN

Stack Overflow用户

发布于 2017-11-05 04:28:36

试试这个:

代码语言:javascript
代码运行次数:0
运行
复制
$key = 'a3';
$arr = [
    'a1' => '1',
    'a2' => '2',
    'a3' => '3',
    'a4' => '4',
    'a5' => '5',
    'a6' => '6'
];
if (isset($arr[ $key ]))
    $arr = [ $key => $arr[ $key ] ] + $arr;

结果:

代码语言:javascript
代码运行次数:0
运行
复制
array(
    'a3' => '3',
    'a1' => '1',
    'a2' => '2',
    'a4' => '4',
    'a5' => '5',
    'a6' => '6'
)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5312879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档