ホームページ  >  記事  >  バックエンド開発  >  PHP 関数 array_merge、phparray_merge_PHP チュートリアル

PHP 関数 array_merge、phparray_merge_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:20:10751ブラウズ

PHP関数 array_merge, phparray_merge

今日はarray_merge()関数がバグっていたので再調査しました。

定義: array_merge — 1つ以上の配列をマージします

仕様: array array_merge(array $array1 [, $array1 [, array $...array $... ])

説明:

1. 1 つ以上の配列のセルを結合し、1 つの配列内の値を前の配列の末尾に追加します。

2. 入力配列に同じ文字列キー名がある場合、キー名の後の値が前の値を上書きします。ただし、配列に数値キー名が含まれている場合、後続の値は元の値を上書きせず、元の値に追加されます。

3. 配列のみが指定され、その配列が数値的にインデックス付けされている場合、キー名は継続的に再インデックス付けされます。

この機能はマニュアルに詳細な例が記載されており、非常に多用途で実用的です。

今日私が遭遇した問題は、マニュアルに警告があったのに、これまで気付かず、致命的なエラーが発生したということでした。以下の通り:

PHP >= バージョン 5.0、array_merge() は array 型のパラメータのみを受け入れます。ただし、キャストを使用して他の型を組み合わせることができます。

foreach やその他のコードによって生成される配列変数に注意してください。変数を空の配列に初期化するか、マージ中に強制変換を実行してください。そうでないと、あなたはとても苦しむことになるでしょう。したがって、変数を初期化する習慣を維持することもお勧めします。

phpのarray_mergeとは何ですか

配列を結合する

1. 2 つの配列が同じ文字列キー名を持つ場合:
$book1 = array(linux=>linux サーバーの構成と管理,php=>PHP プログラミング); array(linux=>サーバーの構成と管理,jsp=>PHP);
$result = array_merge($book1,$book2);
print_r($result);
?>
出力は次のとおりです:
Array ( [linux] => サーバーの構成と管理 [php] => PHP プログラミング [jsp] => PHP)

手順、後者は前者を置き換えます。

2. 2 つの配列が同じ数値キー名を持つ場合:
$book1 = array (Linux サーバーの構成と管理、PHP プログラミング);
$book2 = array (サーバーの構成と管理、PHP);
$result = array_merge($book1,$book2);
print_r($result);
?>
結果は次のようになります:
Array ( [0] => Linux サーバーの構成と管理 [1] => ; PHPプログラミング[2] => サーバーの構成と管理[3] => PHP )

---明確かどうかはわかりません


PHPのArray_mergeでは配列型以外の変数を追加できないのですが、何か良い解決方法はありますか?ダサい空っぽを除いて

カスタム関数を使用できます

function array_add($str1,$str2) {
if ( !is_array($str1) ) {
return;
}
if ( is_array($str2) ) {
$result = array_merge( $str1,$str2);
} else {
$result = array_push($str1,$str2);
}
return $result;
}


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

tru​​ehttp://www.bkjia.com/PHPjc/869239.html技術記事 PHP 関数 array_merge、phparray_merge 今日はバグのため、array_merge() 関数を再検討しました。 定義: array_merge は 1 つ以上の配列をマージします 仕様: array array_merge...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。