2015-11-05 89 views
1

只想問我是否會使用網站名稱重新排列數組中的數據?當站點名稱爲循環時,我只想顯示一次數據。如何重新排列數組中的數據?

例如網站順序是這樣

site1 
site2 
site3 
site4 

我想這是它必須是爲了通過率最高或號碼:

name: John Doe 
site: site1 
rate: 10 



name: Joen Doe 
site: site2 
rate: 10 

name: Ejon Odeo 
site: Site3 
rate: 9.7 

name: Ejosan Odeo 
site: Site4 
rate: 9.5 

name: John Smith 
site: site1 
rate: 9.3 

name: Jodsen Dsoe 
site: site2 
rate: 8 

name: Efsdjon Oddeo 
site: Site3 
rate: 6.3 

等等...

它將循環直到它將全部打印。

名稱陣:

Array ([0] => Array ([name] => name here [rate] => 10 [site] => site here) 
Array ([1] => Array ([name] => name here [rate] => 9 [site] => site here) 
Array ([2] => Array ([name] => name here [rate] => 8 [site] => site here) 
Array ([3] => Array ([name] => name here [rate] => 7 [site] => site here) 
Array ([4] => Array ([name] => name here [rate] => 6 [site] => site here) 
Array ([5] => Array ([name] => name here [rate] => 5 [site] => site here) 
Array ([6] => Array ([name] => name here [rate] => 5 [site] => site here) 

網站陣 我想從陣列顯示在每一個網站的名稱只有一個人,當到達入端上的位置排列,然後它會再次啓動exs站點名稱,直到人員數組全部顯示。

Array ([0] => Array ([acronym] => exs [site_order] => 1) [1] => Array ([acronym] => ts [site_order] => 1) [2] => Array ([acronym] => ih [site_order] => 2) [3] => Array ([acronym] => tp [site_order] => 3) [4] => Array ([acronym] => tc [site_order] => 4) [5] => Array ([acronym] => cfnm [site_order] => 5) [6] => Array ([acronym] => sn [site_order] => 6) [7] => Array ([acronym] => tla [site_order] => 7) [8] => Array ([acronym] => bsc [site_order] => 8) [9] => Array ([acronym] => tdp [site_order] => 9) [10] => Array ([acronym] => lhd [site_order] => 10) [11] => Array ([acronym] => ss [site_order] => 11) [12] => Array ([acronym] => pov [site_order] => 12) [13] => Array ([acronym] => rat [site_order] => 13) [14] => Array ([acronym] => trw [site_order] => 14) [15] => Array ([acronym] => tgs [site_order] => 15) [16] => Array ([acronym] => tlm [site_order] => 16) [17] => Array ([acronym] => ol [site_order] => 17) [18] => Array ([acronym] => tb [site_order] => 18) [19] => Array ([acronym] => ta [site_order] => 19) [20] => Array ([acronym] => hfy [site_order] => 20) [21] => Array ([acronym] => sd [site_order] => 21) [22] => Array ([acronym] => si [site_order] => 22) [23] => Array ([acronym] => tse [site_order] => 23)) 

站點數組中的首字母縮寫詞是站點名稱。請幫幫我

回答

0

如果我正確理解你的問題,你想排序一個多維數組的值。 This question has been asked before。爲了您的具體情況,你可以改變你這樣的代碼(在PHP 5.3及以上,這是):

usort($someArray, function($a, $b) { 
    return $a['rate'] - $b['rate']; 
}); 
1

看看usorthttp://php.net/manual/en/function.usort.php

<?php 

// your example array 
$data = array(
    0 => array('name' => 'name 1', 'rate' => 1, 'site' => 'site 8'), 
    1 => array('name' => 'name 2', 'rate' => 2, 'site' => 'site 9'), 
    2 => array('name' => 'name 3', 'rate' => 4, 'site' => 'site 10'), 
    3 => array('name' => 'name 4', 'rate' => 3, 'site' => 'site 11'), 
    4 => array('name' => 'name 5', 'rate' => 6, 'site' => 'site 12'), 
    5 => array('name' => 'name 6', 'rate' => 7, 'site' => 'site 13'), 
    6 => array('name' => 'name 7', 'rate' => 5, 'site' => 'site 14') 
); 

// sort array with user defined function, see below 
usort($data, 'sortByRate'); 

// now you can walk through the array and print it 
foreach ($data as $item) { 
    echo 'name: '.$item['name'].'<br>'; 
    echo 'site: '.$item['site'].'<br>'; 
    echo 'rate: '.$item['rate'].'<br>'; 
    echo '<br>'; 
} 


// function wich sorts the array 
function sortByRate($a, $b) { 
    if ($a['rate'] == $b['rate']) { 
     return 0; 
    } 
    return ($a['rate'] > $b['rate']) ? -1 : 1; 
} 
+0

如果什麼網站名稱的順序是 9,8,14,13,11,12,10? –

+0

即時通訊只是想知道如何我會顯示這個網站的名稱順序?例如網站名稱數組是這樣的?並且必須根據網站名稱進行排序並且費率也必須是正確的? –

+0

你有什麼想法隊友嗎? –