Другим решением; используя пользовательскую функцию, чтобы переместить элемент в начало массива
function __unshift(&$array, $value){
$key = array_search($value, $array);
if($key) unset($array[$key]);
array_unshift($array, $value);
return $array;
}
$a = array("Apple", "Orange", "Banana", "Melon");
__unshift($a, "Melon");
__unshift($a, "Orange");
print_r($a);
Выход:
Array
(
[0] => Orange
[1] => Melon
[2] => Apple
[3] => Banana
)
Demo
Или вы можете использовать следующие реорганизовать массив, используя другой массив того переупорядоченной индекс
function __reorder(&$a, &$b){
$c = array();
foreach($b as $index){
array_push($c, $a[$index]);
}
return $c;
}
// the original array
$a = array("Apple", "Orange", "Banana", "Melon");
// an array with reordered index
$b = array(1, 3, 0, 2);
$c = __reorder($a, $b);
print_r($c);
Demo
Магазин '' orange' и Melon' в массиве TMP, затем вставляться в отсортированном один. –