PHPは2つの秩序配列を結合する方法の分析を実現する

4116 ワード

本明細書の例では、PHPが2つの秩序配列を結合する方法を実装する方法について説明する.皆さんの参考にしてください.具体的には以下の通りです.

$arr1 = array(1,2,3,4,5,6,7,8);
$arr2 = array(3,4,5,7,9,10);
//  1
function mergeOrderly1($arr1,$arr2){
 $i=0;$j=0;
 $int = array();
 while($i $arr2[$i2]){//      1   2,        ,    +1
    $arr[] = $arr2[$i2];
    $i2++;
   }else{
    $arr[] = $arr1[$i1];
    $i1++;
   }
  }elseif($i1 < $arr1Num && $i2 >= $arr2Num){//  2       ,   1    ,   
   $arr[] = $arr1[$i1];//     1           
   $i1++;
  }elseif($i2 < $arr2Num && $i1 >= $arr1Num){//  1      ,   2    ,   
   $arr[] = $arr2[$i2];//     2           
   $i2++;
  }
 }
 return $arr;
}
print_r(mergeOrderly1($arr1,$arr2));
print_r(mergeOrderly2($arr1,$arr2));


実行結果:

Array
(
 [0] => 1
 [1] => 2
 [2] => 3
 [3] => 3
 [4] => 4
 [5] => 4
 [6] => 5
 [7] => 5
 [8] => 6
 [9] => 7
 [10] => 7
 [11] => 8
 [12] => 9
 [13] => 10
)
Array
(
 [0] => 1
 [1] => 2
 [2] => 3
 [3] => 3
 [4] => 4
 [5] => 4
 [6] => 5
 [7] => 5
 [8] => 6
 [9] => 7
 [10] => 7
 [11] => 8
 [12] => 9
 [13] => 10
)


注意深い読者は、合併後の配列が繰り返されていないことに気づいたはずだ.配列を結合して繰り返す方法を説明します.
1.単一配列の重複除外array_unique($arrTest)
2.複数グループの重複除外array_keys(array_flip($arr1)+array_flip($arr2))
テスト例:

$arr1 = array(1,2,3,4,5);
$arr2 = array(1,2,3,6,7);
$arr3 = array('0'=>1,'1'=>2,'2'=>3,'3'=>4,'4'=>5);
$arr4 = array('0'=>1,'1'=>2,'2'=>3,'3'=>6,'4'=>7);
$arr5 = array('0'=>1,'a'=>2,'b'=>3,'c'=>4,'4'=>5);
$arr6 = array('0'=>1,'a'=>2,'c'=>3,'d'=>6,'4'=>7);
var_dump(array_merge($arr1, $arr2));
var_dump($arr1+$arr2);
var_dump(array_keys(array_flip($arr1)+array_flip($arr2)));
echo '
'; var_dump(array_merge($arr3, $arr4)); var_dump($arr3+$arr4); var_dump(array_keys(array_flip($arr3)+array_flip($arr4))); echo '
'; var_dump(array_merge($arr5, $arr6)); var_dump($arr5+$arr6);

実行結果:

array(10) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(1) [6]=> int(2) [7]=> int(3) [8]=> int(6) [9]=> int(7) } array(5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) } array(7) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) [6]=> int(7) } 
array(10) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(1) [6]=> int(2) [7]=> int(3) [8]=> int(6) [9]=> int(7) } array(5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) } array(7) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) [6]=> int(7) } 
array(8) { [0]=> int(1) ["a"]=> int(2) ["b"]=> int(3) ["c"]=> int(3) [1]=> int(5) [2]=> int(1) ["d"]=> int(6) [3]=> int(7) } array(6) { [0]=> int(1) ["a"]=> int(2) ["b"]=> int(3) ["c"]=> int(4) [4]=> int(5) ["d"]=> int(6) } 


PHPに関する内容についてもっと兴味のある読者は、「PHP配列(Array)操作技巧大全」、「PHP数学演算技巧総括」、「PHP演算と演算子用法総括」、「php文字列(string)用法総括」、「PHP常用遍歴アルゴリズムと技巧総括」、「PHPデータ構造とアルゴリズム教程」及び「phpプログラム設計アルゴリズム総括」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.