tam*_*ale 49 php arrays sorting
大脑冻结了一个相当微不足道的问题.如果我从这样的数组开始:
$my_array = array(
'monkey' => array(...),
'giraffe' => array(...),
'lion' => array(...)
);
Run Code Online (Sandbox Code Playgroud)
...并且新元素可能会添加不同的键,但总是一个数组值.现在我可以肯定第一个元素总是会有"猴子"键,但我不能确定任何其他键.
当我完成填充数组时,我想将已知元素'monkey'移动到数组的末尾,而不会干扰其他元素的顺序.最有效的方法是什么?
我能想到的每一种方式都显得有点笨拙,我觉得我错过了一些明显的东西.
cle*_*tus 91
我能想到的唯一方法是删除它然后添加它:
$v = $my_array['monkey'];
unset($my_array['monkey']);
$my_array['monkey'] = $v;
Run Code Online (Sandbox Code Playgroud)
array_shift可能比取消设置索引效率低,但它的工作原理如下:
$my_array = array('monkey' => 1, 'giraffe' => 2, 'lion' => 3);
$my_array['monkey'] = array_shift($my_array);
print_r($my_array);
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用回调和uksort:
uksort($my_array, create_function('$x,$y','return ($y === "monkey") ? -1 : 1;'));
Run Code Online (Sandbox Code Playgroud)
如果使用PHP5.3 +,或者只是定期将函数定义为全局函数,则需要使用正确的lambda.
归档时间: |
|
查看次数: |
45816 次 |
最近记录: |