,例如,说我有以下数组:
$myArray = array(
'two' => 'Blah Blah Blah 2',
'three' => 'Blah Blah Blah 3',
'one' => 'Blah Blah Blah 1',
'four' => 'Blah Blah Blah 4',
'five' => 'Blah Blah Blah 5',
);
我想做的就是将“一个”元素移至开始,最终以以下数组:
$myArray = array(
'one' => 'Blah Blah Blah 1',
'two' => 'Blah Blah Blah 2',
'three' => 'Blah Blah Blah 3',
'four' => 'Blah Blah Blah 4',
'five' => 'Blah Blah Blah 5',
);
迟到了,但是如果有人需要它,我创建了这个小片段。
$myArray = array_merge(array($key => $value) + $myArray );
将其调整以适应您的需求,或使用它并解开索引移动。也与关联阵列一起工作。
there是另一条简单的单线,可以使用完成此操作。
array_splice()
如果您有2个阵列, 第一元素可以移至第二个元素的顶部,您可以使用
$myArray = array_splice($myArray,array_search('one',array_keys($myArray)),1) + $myArray;
这里是代码样本:
$result = \array_replace($ArrayToMoveToTop, $myArray);
//source array
$myArray = [
'two' => 'Blah Blah Blah 2',
'three' => 'Blah Blah Blah 3',
'one' => 'Blah Blah Blah 1',
'four' => 'Blah Blah Blah 4',
'five' => 'Blah Blah Blah 5',
];
// set necessary order
$orderArray = [
'one' => '',
'two' => '',
];
//apply it
$result = \array_replace($orderArray, $myArray);
\print_r($result);
未设置元素,然后通过上述函数再次重新插入:
function array_unshift_assoc(&$arr, $key, $val)
{
$arr = array_reverse($arr, true);
$arr[$key] = $val;
return array_reverse($arr, true);
}
更通用的方法可能是使用