ホームページ >バックエンド開発 >PHPチュートリアル >PHP で 2 つの順序付けされた配列をマージする_PHP チュートリアル
2 つの順序付けされた配列の場合、各配列は 1 回ループされ、順序どおりに新しい配列に配置できます。
インクリメント、比較し、PHP コードを順番に挿入するというアイデアを考えてみましょう:
[php]
$arr1 = array(1,2,3,4,5,6,7,8);//サンプルデータ
$arr2 = 配列(3,4,5,7,9,10);
エコー '
'; print_r(mergeOrderly($arr1,$arr2));//例
関数 mergeOrderly($arr1,$arr2){
If(!count($arr1)){//パラメータが意味があるかどうかを判断します
false を返します
}elseif(!count($arr2)){
false を返します
}else {//マージ
$arr = array();//最終的な配列コンテナを定義します
$arr2Num = count($arr2);//統計的な配列の長さ
$arr1Num = count($arr1); $i1 = 0;//配列1のループマーク
$i2 = 0;//配列2のループマーク
while($i1 < $arr1Num || $i2 < $arr2Num){//まだマージする必要がありますか
If($i1 < $arr1Num && $i2 < $arr2Num){//両方の配列が最後まで到達していない場合、ケース 1
If($arr1[$i1] > $arr2[$i2]){//配列 1 と配列 2 を比較する必要があり、小さい方をターゲット配列に入れ、+1 をマークします
$arr[] = $arr2[$i2]; $i2++; $arr[] = $arr1[$i1]; $i1++; }elseif($i1 < $arr1Num && $i2 >= $arr2Num){//配列 2 は最後に到着しましたが、配列 1 はまだ到着していません、ケース 2
$arr[] = $arr1[$i1];// 配列 1 の内容をターゲット配列に直接挿入します
$i1++; }elseif($i2 < $arr2Num && $i1 >= $arr1Num){//配列 1 は最後に到着しましたが、配列 2 はまだ到着していません、ケース 3
$arr[] = $arr2[$i2];// 配列 2 の内容をターゲット配列に直接挿入します
$i2++; }
$arr を返します
}
}
?>
作者: dats0407
http://www.bkjia.com/PHPjc/478058.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/478058.html
技術記事
2 つの順序付けされた配列の場合、各配列は 1 回循環され、順序どおりに新しい配列に配置できます。PHP コード: [php] ?p...を順番にインクリメントし、比較し、挿入します。