我有以下数组,并且会不时改变。
Array
(
[For Sale] => For Sale
[Sold] => Sold
[To Let] => To Let
[Let] => Let
[Under Offer] => Under Offer
[Exchanged] => Exchanged
[Withdrawn] => Withdrawn
[Acquired] => Acquired
)
不管最初的序列是什么,但是当页面加载时,它应该看起来像
Array
(
[For Sale] => For Sale
[Under Offer] => Under Offer
[Exchanged] => Exchanged
[Withdrawn] => Withdrawn
[Acquired] => Acquired
[Sold] => Sold
[To Let] => To Let
[Let] => Let
)
基本上,这三个要素应该留在数组的底部。
[Sold] => Sold
[To Let] => To Let
[Let] => Let
在此处,我已经使用
'Sold','To Let','Let'
数组中解开该键,然后将该键值推到数组中。
$input
这将输出:
<?php
$input = array(
'For Sale' => 'For Sale',
'Sold' => 'Sold',
'To Let' => ' To Let',
'Let' => 'Let',
'Under Offe' => 'Under Offer',
'Exchanged' => 'Exchanged',
'Withdrawn' => 'Withdrawn',
'Acquired' => 'Acquired'
);
foreach ($input as $key => $val) {
if (in_array($key, array('Sold', 'To Let', 'Let'))) {
unset($input[$key]);
$input[$key] = $val;
}
}
echo "<pre>";
print_r($input);
?>
llet您的数组名称为Array
(
[For Sale] => For Sale
[Under Offe] => Under Offer
[Exchanged] => Exchanged
[Withdrawn] => Withdrawn
[Acquired] => Acquired
[Sold] => Sold
[To Let] => To Let
[Let] => Let
)
$arr
将它们存储在数组的最后一个。
您必须使用foreach格式化数据。
$sold = $arr['Sold'];
unset($arr['Sold']);
$to_let = $arr['To Let'];
unset($arr['To Let']);
$let = $arr['Let'];
unset($arr['Let']);
array_push($arr, $sold, $to_let, $let);
使用“自定义顺序”(几个维度排序)使用
array_multisort
输出:
// $arr is your initial array
$custom_order = ['F'=> 0,'S' => 5,'T' => 6,'L' =>7,'U' => 1,'E' => 2,'W' => 3,'A' => 4];
array_multisort($custom_order, SORT_ASC, $arr);
print_r($arr);
使用
Array
(
[For Sale] => For Sale
[Under Offer] => Under Offer
[Exchanged] => Exchanged
[Withdrawn] => Withdrawn
[Acquired] => Acquired
[Sold] => Sold
[To Let] => To Let
[Let] => Let
)
和
uksort
函数或另一种(甚至更好)的方法:
array_search
http://php.net/manual/en/function.uksort.php