ホームページ  >  記事  >  バックエンド開発  >  PHPのarray_merge関数を再理解する、phparraymerge_PHPチュートリアル

PHPのarray_merge関数を再理解する、phparraymerge_PHPチュートリアル

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

PHPのarray_merge関数、phparraymergeを再理解してください

PHPのarray_merge関数を再理解する

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

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

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

説明:

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

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

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

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

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

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

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

PHP で配列をマージする場合には 2 つの状況があります

1. 2 つの配列が同じ文字列キー名を持つ場合:

リーリー

出力は次のとおりです:

リーリー


後者が前者を置き換えることに注意してください。ただし、array_merge_recursive() を使用すると、部分配列として保持して存在できます。例:

リーリー

出力は次のとおりです:

リーリー


2. 2 つの配列が同じ数値キー名を持つ場合:

リーリー

結果は次のとおりです:

リーリー


このとき、配列に同じ数値キー名が含まれている場合、後続のキー値は前の値を上書きせず、後続のキー値が順番に増加して最後に追加されます。分かりますか^_^

PHPで配列の値を結合するための関数(またはヒント)はありますか

1. 最も簡単な方法: +

次のコードを使用します:

$r1 = array('a'=>1,'b'=>3,'c'=> 5 ,'d'=>7,'e'=>9);
$r2 = array('f'=>2,'g'=>4,'h'=>6,' i '=>8,'j'=>10);
$r = $r1+$r2;
echo '

';<br> print_r($r);<br> echo '
'
?>
コード出力結果:
Array
(
[a] => 1
[b] => 3
[c] => 5
[d] => 7
[e] = > 9
[f] => 2
[h] => 8
[j] => 10
このメソッドについて注意すべき点は、同じ 2 つのキーワードを持つ 1 つの要素 ($r1+r2) のみが保持されるため、$r1 のデータが保持されることです。これは特別な場合に役立つ可能性があります。

2. array_merge() 関数を使用します:

$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b" , "色" => "緑", "形状" => "台形", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>
コード出力結果:
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape ] =>台形
[4] =>4
)




PHP関数の&とは何ですか? function: private function test(&$array) {}

これは関数への参照渡し呼び出しです。 $array は変数です。test() に渡されるのは $array のアドレスです。関数は $array の内容を直接書き換えて値を返します

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