move元素,带有白色阵列中的键到阵列末端的键[重复]

问题描述 投票:0回答:4

我有以下数组,并且会不时改变。

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

在此处,我已经使用
php arrays sorting associative-array custom-sort
4个回答
1
投票
将键与给定的键匹配,然后从

'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
将它们存储在数组的最后一个。

1
投票

您必须使用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);

使用“自定义顺序”(几个维度排序)使用

1
投票
函数的有效解决方案:

array_multisort
输出:

-1
投票
// $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


    
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.