ホームページ >バックエンド開発 >PHPチュートリアル >PHP で 2 つの順序付けされた配列をマージする_PHP チュートリアル

PHP で 2 つの順序付けされた配列をマージする_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:52:58785ブラウズ

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

tru​​e

http://www.bkjia.com/PHPjc/478058.html

技術記事

2 つの順序付けされた配列の場合、各配列は 1 回循環され、順序どおりに新しい配列に配置できます。PHP コード: [php] ?p...

を順番にインクリメントし、比較し、挿入します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。