php實現排列數組和有序排列方法匯總

來源:互聯網
上載者:User
使用array_merge() 函數

用了一個array_unique去除了一個數組裡面的重複,但是發現下標保留了原數組的下標,但是php使用for迴圈需要下標整齊,所以尋找重新排列數組下標的方法array_merge可以解決這個問題

array_merge() 函數把兩個或多個數組合并為一個數組。

如果鍵名有重複,該鍵的索引值為最後一個鍵名對應的值(後面的覆蓋前面的)。如果數組是數字索引的,則鍵名會以連續方式重新索引。

注釋:如果僅僅向 array_merge() 函數輸入了一個數組,且鍵名是整數,則該函數將返回帶有整數鍵名的新數組,其鍵名以 0 開始進行重新索引。

<?php$a1=array("a"=>"Horse","b"=>"Dog");$a2=array("c"=>"Cow","b"=>"Cat");print_r(array_merge($a1,$a2));?>

輸出:

Array ( [a] => Horse [b] => Cat [c] => Cow )

例子 2

僅使用一個數組參數:

<?php$a=array(3=>"Horse",4=>"Dog");print_r(array_merge($a));?>

輸出:

Array ( [0] => Horse [1] => Dog )

合并成新表並且有序排列的方法

<?php /** la (3,5,8,11) lb(2,6,8,9,11,15) 合并為lc,有序排列。 用php實現,不能用sort之類的函數!!!! **/ class union {     var $lista = array();     var $listb = array();     var $listc = array();          function getlenght($arr) { //獲得表長度         return count($arr);     }          function getelement($arr, $n) { //擷取表中第n個元素,返回         return $e = $arr[$n] ? $arr[$n] : '';     }          function listinsert($arr, $e) { //表末尾插入元素         $arr[] = $e;         return $arr;     } } $phpig = new union(); $lista = $phpig->lista = array(3, 5, 8, 11); $listb = $phpig->listb = array(2, 6, 8, 9, 11, 15); $listc = $phpig->listc; $lena = $phpig->getlenght($lista); //取得表大小 $lenb = $phpig->getlenght($listb); $i = $j = 0; while($i < $lena && $j < $lenb) {     $ea = $phpig->getelement($lista, $i);     $eb = $phpig->getelement($listb, $j);     if($ea <= $eb) {         $listc = $phpig->listinsert($listc, $ea);         ++$i;     } else {         $listc = $phpig->listinsert($listc, $eb);         ++$j;     } } while($i < $lena) {     $ea = $phpig->getelement($lista, $i);     $listc = $phpig->listinsert($listc, $ea);     ++$i; }while($j < $lenb) {     $eb = $phpig->getelement($listb, $j);     $listc = $phpig->listinsert($listc, $eb);     ++$j; } print_r($listc); ?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.