足球赛事分组代码PHP,PHP数组分组排序程序代码
php中數據排序可以用sort但如果要做到數組分組排序的話我們可以使用array_multisort函數或者使用多重復遍歷來做,下面看一個例子。
PHP的數組,數組中的內容大致如下:
代碼如下
復制代碼
$list = array(
array(2,3,5),
array(2,5,24),
array(3,8,6),
array(3,2,10),
array(4,7,20),
array(4,1,15),
array(6,4,10),
array(7,9,20),
);
為了方便表達,我把3列數字分別稱為,ABC三列
需求:默認以A列排序為主,如果A列相同則以C列倒序排列相同的元素。B列其實沒有參與排序,但是在實際運用中有用,所以我也寫出來了。
方法一:
代碼如下
復制代碼
$a = $c = array();
foreach($list as $val){
$a[] = $val[0]; //a列
$c[] = $val[2]; //c列
}
//安裝a列升序,然后安裝b列降序 , 類似sql,orderby a asc,b desc
array_multisort($a,SORT_ASC , $c, SORT_DESC, $list);
print_r($list);
方法二:
代碼如下
復制代碼
for($j=0;$j
for($i=count($list)-1;$i>$j;$i--){
if($list[$i][0] == $list[$i-1][0] && $list[$i][2] > $list[$i-1][2])
list($list[$i],$list[$i-1]) = array($list[$i-1],$list[$i]);
}
}
例子2
例如有下面的數據,從數據庫里查出來的,是一個二維數組。
[0] => Array ( [trans_lang_id] => 1 [country_id] => 1 [trans_origin_id] => 1 [page_id] => 1 [trans_content] => test1
[1] => Array ( [trans_lang_id] => 2 [country_id] => 1 [trans_origin_id] => 2 [page_id] => 1 [trans_content] => test2
[2] => Array ( [trans_lang_id] => 3 [country_id] => 1 [trans_origin_id] => 3 [page_id] => 1 [trans_content] => test3
[3] => Array ( [trans_lang_id] => 4 [country_id] => 1 [trans_origin_id] => 4 [page_id] => 1 [trans_content] => test4
[4] => Array ( [trans_lang_id] => 6 [country_id] => 2 [trans_origin_id] => 1 [page_id] => 2 [trans_content] => test5
怎樣按照country_id 和page_id分組,將里面的數據查分成多個數組?
也就是country_id和page_id相同的數據成為一個新數組。因為這樣的數據會輸出到同一個csv文件。
比如文件名為 zh_CN_1.csv。
代碼如下
復制代碼
Array Translates:
US_en:Array (
[1] => Array (
[0] => Array ( [0] => test [1] => 測試)
[1] => Array ( [0] => test [1] => 測試)
[2] => Array ( [0] => test [1] => 測試)
[3] => Array ( [0] => test [1] => 測試 )
)
)
CN_zh:Array (
[2] => Array (
[0] => Array ( [0] => There are no user contributed notes for this page. [1] => this belong to another country )
)
)
foreach ($translates as $translate) {
$data[$translate["language_code"] . "_" . $translate['short_name'] ][$translate['page_id']][] = array($translate['content'], $translate['trans_content']);
}
foreach ($data as $locale_key => $item) {
foreach ($item as $page_key => $csvContent) {
$fileName = $locale_key . "_" . $page_key . ".csv";
$translationFile->generateCSV($fileName, $csvContent);
}
這樣的話輸出的CSV就像下面的結構:
zh_CN_1.csv
zh_CN_2.csv
en_US_1.csv
en_US_2.csv
每個csv里面可能有多條數據,就是那些國家語言以及page_id都相同的數據就放在同一個csv里
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
總結
以上是生活随笔為你收集整理的足球赛事分组代码PHP,PHP数组分组排序程序代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 解决故意弄得错误,高效的Jav
- 下一篇: php本地怎么接受小程序图片,怎么把本地