ホームページ  >  記事  >  php教程  >  PHP 配列操作 (マージ、分割、追加、検索、削除など)

PHP 配列操作 (マージ、分割、追加、検索、削除など)

WBOY
WBOYオリジナル
2016-08-04 08:53:191120ブラウズ

1. 配列を結合する

array_merge() 関数は配列を結合し、結合された配列を返します。結果の配列は、最初の入力配列パラメーターで始まり、後続の配列パラメーターが出現する順序で順次追加されます。その形式は次のとおりです:

PHPコードPHP 配列操作 (マージ、分割、追加、検索、削除など)
  1. 配列 array_merge (配列 array1 array2…,arrayN)

この関数は 1 つ以上の配列のセルを結合し、1 つの配列の値が前の配列に追加されます。結果の配列を返します。

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

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

PHPコードPHP 配列操作 (マージ、分割、追加、検索、削除など)
  1. $fruits = array("リンゴ","バナナ","梨"); $numbered = array("1","2",
  2. "3");
  3. $cards = array_merge($フルーツ, $番号付き); print_r($cards); // 出力
  4. //配列 ([0] => リンゴ [1] => バナナ [2] => 梨 [3] => 1 [4] => 2 [5] => 3 ) ?>
  5. 2. 配列を追加する
  6. array_merge_recursive() 関数は array_merge() と同じで、2 つ以上の配列を結合して結合配列を形成できます。 2 つの違いは、入力配列内のキーが結果配列に既に存在する場合、関数は異なる方法で処理することです。 array_merge() は、以前に存在していたキー/値のペアを上書きし、現在の入力配列のキー/値のペアに置き換えます。一方、array_merge_recursive() は、2 つの値をマージして、元のキーを含む新しい配列を形成します。配列名。 配列を再帰的に追加する配列マージの形式もあります。その形式は次のとおりです:
  7. PHPコード
  8. 配列
  9. array_merge_recursive(
  10. array array1,
array array2[…,
array arrayN])

PHP 配列操作 (マージ、分割、追加、検索、削除など)
プログラム例は以下の通りです:
  1. PHPコード
    1. $fruit1 = array("リンゴ" => "赤", "バナナ" => );
    2. $fruit2 = array("梨" => "黄色", "リンゴ" => );
    3. $result =
    4. array_merge_recursive($fruit1, $fruit2); print_r($結果); // 出力
    5. // Array ( [apple] => Array ( [0] => red [1] => green ) [banana] => yellow [pear] => yellow )
    6. ?>
    7. これで、キーのリンゴは、色の値の 2 つのインデックス付き配列で構成される配列を指します。
    8. 3. アレイを接続する
array_combine() 関数は、送信されたキーと対応する値のセットで構成される新しい配列を取得します。その形式は次のとおりです:

Javaコード

配列 array_combine(配列キー,配列値)

PHP 配列操作 (マージ、分割、追加、検索、削除など)
2 つの入力配列は同じサイズである必要があり、空にすることはできないことに注意してください。例は次のとおりです
  1. PHPコード

$name =
array(PHP 配列操作 (マージ、分割、追加、検索、削除など)"リンゴ",
"バナナ",
"オレンジ");
  1. $color =
  2. array(
  3. "赤", "黄", "オレンジ"); $fruit = array_combine($name, $color); print_r($フルーツ);
  4. // 出力 // 配列 ( [リンゴ] => 赤 [バナナ] => 黄 [オレンジ] => オレンジ ) ?>
  5. 4. 配列 array_slice() を分割する array_slice() 関数は、キー オフセットから始まりオフセット + 長さで終わる配列の一部を返します。その形式: PHPコード
  6. 配列
  7. array_slice (
  8. 配列 array, int offset[,int length])
offset が正の値の場合は配列の先頭からのオフセット位置から分割が開始され、offset が負の値の場合は配列の末尾からのオフセット位置から分割が開始されます。オプションの長さパラメータが省略された場合、分割はオフセットから開始され、配列の最後の要素まで進みます。長さが指定されており、それが正の場合、配列の先頭からのオフセット + 長さの位置で終了します。逆に、長さが指定されていて負の場合、配列の先頭から count(input_array)-|length| で終了します。例を考えてみましょう:

PHPコード

  1. $fruits = array(「リンゴ」, 「バナナ」, 「オレンジ」, 「梨」, 「ブドウ」, 「レモン」, 「スイカ」);  
  2. $subset = array_slice($fruits, 3);  
  3. print_r($subset);  
  4. // 出力
  5. // 配列 ( [0] => 梨 [1] => ブドウ [2] => レモン [3] => スイカ )
  6. ?>  

然后我们使用下负长度:

Php代 PHP 配列操作 (マージ、分割、追加、検索、削除など)
  1. $fruits = array(「リンゴ」, 「バナナ」, 「オレンジ」, 「梨」, 「ブドウ」, 「レモン」, 「スイカ」);  
  2. $subset = array_slice($fruits, 2, -2);  
  3. print_r($subset);  
  4. // 出力
  5. // 配列 ( [0] => オレンジ [1] => 洋ナシ [2] => グレープ )
  6. ?>  

5. 接合数组 array_splice()

array_splice() 関数は、オフセットの開始からオフセット + 長さの終わりまでのすべての要素を数グループから削除し、削除された要素を数グループの形式で返します。

Php代
PHP 配列操作 (マージ、分割、追加、検索、削除など)
  1. array array_splice ( array array , int offset[,length[,array replacement]])

オフセットが正の値の場合、接合は距離集合のオフセット位置から始まり、オフセットが負の値の場合、接合は距離集合の末尾のオフセット位置から始まります。逆に、長さが指定され、正しい値である場合、結合は、距離セットのオフセット + 長さの位置で終了します。結合は、ピッチ数の先頭の count(input_array) の長さの位置で終了します。

Php代
PHP 配列操作 (マージ、分割、追加、検索、削除など)
  1. $fruits = array(「リンゴ」、「バナナ」、「オレンジ」、「梨」、「ブドウ」、「レモン」、「スイカ」); $subset = array_splice($fruits, 4);
  2. print_r($フルーツ) print_r($サブセット);
  3. // 出力
  4. // 配列 ( [0] => リンゴ [1] => バナナ [2] => オレンジ [3] => 梨 )
  5. //配列 ([0] => ブドウ [1] => レモン [2] => スイカ )
  6. ?>
  7. オプションのパラメータ置換を使用して、ターゲット部分を置換する配列を指定できます。例は次のとおりです:
  8. PHPコード

$fruits =
array(
「リンゴ」、PHP 配列操作 (マージ、分割、追加、検索、削除など)「バナナ」、
「オレンジ」、
「梨」、
    「ブドウ」、
  1. 「レモン」、
  2. 「スイカ」);
  3. $subset = array_splice($fruits, 2, -1, array("緑のリンゴ", "赤いリンゴ")); print_r($フルーツ) print_r($サブセット);
  4. // 出力 //配列 ([0] => リンゴ [1] => バナナ [2] => 緑のリンゴ [3] => 赤いリンゴ [4] => スイカ ) //配列 ([0] => オレンジ [1] => 梨 [2] => ブドウ [3] => レモン ) ?>
  5. この機能の使用方法はプログラムから明確にわかります。
  6. 6. 配列の交差 array_intersect()
  7. array_intersect() 関数は、最初の配列に出現し、他のすべての入力配列に出現する値のみで構成されるキー保存配列を返します。その形式は次のとおりです:
  8. PHPコード
  9. 配列
  10. array_intersect(
  11. 配列 array1,
array array2[,arrayN…])

次の例は、$fruit1 配列に表示され、$fruit2 と $fruit3 にも表示されるすべてのフルーツを返します。

PHPコード

  1. $fruit1 = array("リンゴ","バナナ","オレンジ"); $fruit2 = array("梨","リンゴ",
  2. "ブドウ");
  3. $fruit3 = array("スイカ","オレンジ","リンゴ"); $intersection = array_intersect($fruit1, $fruit2,
  4. $fruit3);
  5. print_r($交差点); // 出力 // 配列 ( [0] => Apple )
  6. ?> array_intersect() 関数は、2 つの要素が等しく、同じデータ型を持つ場合にのみ、それらの要素が同じであるとみなします。 7. 連想配列の交差 array_intersect_assoc()
  7. 関数 array_intersect_assoc() は、比較の際に配列のキーも考慮する点を除いて、基本的に array_intersect() と同じです。したがって、最初の配列に出現し、他のすべての入力配列にも出現するキーと値のペアのみが結果配列に返されます。 フォームは次のとおりです:
  8. PHPコード
  9. 配列
  10. array_intersect_assoc(
  11. 配列 array1,
  12. array array2[,arrayN…])

次の例は、$fruit1 配列に表示され、$fruit2 と $fruit3 にも表示されるすべてのキーと値のペアを返します。

PHPコード

PHP 配列操作 (マージ、分割、追加、検索、削除など)
    $fruit1 =
  1. array("赤"=>"リンゴ","黄"=>"バナナ","オレンジ"=>"オレンジ");
$fruit2 =

array(

"黄"=>

"梨",

"赤"=>
"リンゴ",
"紫"=>
"ブドウ"); PHP 配列操作 (マージ、分割、追加、検索、削除など)
  1. $fruit3 =
  2. array("緑"=>"スイカ","オレンジ"=>"オレンジ","赤"=>"リンゴ"); $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
  3. print_r(
  4. $交差点); // 出力 //配列 ( [赤] => Apple ) ?>
  5. 8. 配列array_diff()の違い 関数 array_diff() は、最初の配列に表示されるが、他の入力配列には表示されない値を返します。この関数は array_intersect() の逆です。 PHPコード 配列 array_diff(
  6. 配列 array1,
  7. array array2[,arrayN…])

    例は次のとおりです:

    PHPコードPHP 配列操作 (マージ、分割、追加、検索、削除など)
    1. $fruit1 = array("リンゴ","バナナ","オレンジ"); $fruit2 = array("梨","リンゴ",
    2. "ブドウ");
    3. $fruit3 = array("スイカ","オレンジ","リンゴ"); $intersection = array_diff($fruit1, $fruit2,
    4. $fruit3);
    5. print_r($交差点); // 出力 // 配列 ( [1] => バナナ )
    6. ?> 9. 連想配列array_diff_assoc()の違い
    7. 関数 array_diff_assoc() は、比較するときに配列のキーも考慮する点を除いて、基本的に array_diff() と同じです。したがって、最初の配列に現れ、他の入力配列には現れないキーと値のペアのみが結果配列に返されます。その形式は次のとおりです:
    8. PHPコード
    9. 配列 array_diff_assoc(配列 array1,
    10. array array2[,arrayN…])

    次の例では、[ yellow ] => Banana のみが返されます。これは、この特別なキーと値のペアが $fruit1 に表示されますが、$fruit2 と $fruit3 には存在しないためです。

    PHPコード
    PHP 配列操作 (マージ、分割、追加、検索、削除など)
    1. $fruit1 = array("赤"=>"リンゴ","黄"=>"バナナ","オレンジ"=>"オレンジ");

    $fruit2 =

    array(

    "黄"=>

    "梨",
    "赤"=>
    "リンゴ",
    "紫"=>PHP 配列操作 (マージ、分割、追加、検索、削除など)"ブドウ");
    1. $fruit3 = array("緑"=>"スイカ","オレンジ"=>"オレンジ","赤"=>"リンゴ"); $intersection = array_diff_assoc($fruit1, $fruit2,
    2. $fruit3);
    3. print_r($交差点); // 出力 // 配列 ( [黄色] => バナナ ) ?>
    4. 配列を使用する場合、多くの場合、配列を走査する必要があります。多くの場合、配列を反復処理して個々のキーまたは値を取得する (またはキーと値の両方を取得する) 必要があるため、当然のことながら、PHP はこの目的のためにいくつかの関数を提供します。多くの関数は、現在のポインター位置にあるキーまたは値を取得するだけでなく、ポインターを次の適切な位置に移動するという 2 つのタスクを実行します。 10. 現在の配列キー key() を取得します key() 関数は、input_array 内の現在のポインター位置にあるキーを返します。その形式は次のとおりです: PHPコード
      1. 混合キー(配列配列)

    次の例では、配列を反復処理してポインタを移動することにより、$fruits 配列のキーを出力します。

    PHPコード
    PHP 配列操作 (マージ、分割、追加、検索、削除など)
    1. $fruits = array("リンゴ"=>"赤", "バナナ"=>"黄色"); while ($key = key($fruits)) {
    2. printf("%s
      ", $key); 次($フルーツ); }
    3. // リンゴ
    4. //バナナ
    5. key() が呼び出されるたびにポインタは移動しないことに注意してください。この目的のために、 next() 関数を使用する必要があります。この関数の唯一の機能は、ポインターを進めるタスクを完了することです。
    6. 11. 現在の配列値を取得します()
    current() 関数は、配列内の現在のポインター位置にある配列値を返します。その形式は次のとおりです:

    PHPコード

    混合電流(

    配列

    配列)

    PHP 配列操作 (マージ、分割、追加、検索、削除など)
    今回は配列値を取得したいと考えて、前の例を変更してみましょう。
    1. PHPコード
    $fruits =
    array(

    "リンゴ"=>

    "赤",

    "バナナ"=>

    "黄色");
    while (
    $fruit = current(PHP 配列操作 (マージ、分割、追加、検索、削除など)$fruits)) {
    1. printf("%s
      ", $fruit); 次($フルーツ); }
      // 赤
    2. //黄色
    3. 12. 現在の配列のキーと値を取得します
    4. each() 関数は、input_array の現在のキーと値のペアを返し、ポインターを 1 位置進めます。その形式は次のとおりです:
    5. PHPコード
    6. 配列それぞれ(
    7. 配列
    8. 配列)

    返された配列には 4 つのキーが含まれ、キー 0 とキーにはキー名が含まれ、キー 1 と値には対応するデータが含まれます。 each() が実行される前にポインタが配列の末尾にある場合は、false が返されます。

    PHPコード

    PHP 配列操作 (マージ、分割、追加、検索、削除など)$fruits =
    array(
    "リンゴ",
      "バナナ",
    1. "オレンジ", "梨"); print_r (それぞれ($フルーツ));
    2. //配列 ([1] => apple [値] => apple [0] => 0 [キー] => 0 )

    each() は、配列を反復処理するために list() と組み合わせてよく使用されます。この例は前の例と似ていますが、配列全体がループで出力されます。

    PHPコード
    PHP 配列操作 (マージ、分割、追加、検索、削除など)
    1. $fruits = array("リンゴ", "バナナ", "オレンジ", "梨"); リセット($フルーツ); while (list($key,
    2. $val) = each(
    3. $fruits))
    4. } // 0 => リンゴ
    5. // 1 => バナナ
    6. // 2 =>オレンジ
    7. // 3 => 梨
    8. ある配列を別の配列に代入すると元の配列ポインタがリセットされるため、上記の例で $fruits をループ内で別の変数に代入すると無限ループが発生します。
    9. これで配列の走査が完了しました。
    10. 配列要素の検索、フィルタリング、および検索は、配列操作の一般的な機能です。関連する機能をいくつか紹介します。
    11. 13. in_array() 関数

    in_array() 関数は、配列内の特定の値を検索し、値が見つかった場合は true を返し、それ以外の場合は false を返します。その形式は次のとおりです:

    PHPコード

    boolean in_array(混合針,

    配列干し草[,boolean strict]);

    変数 apple がすでに配列内にあるかどうかを確認するには、次の例を見てください。存在する場合は、情報を出力します。

    PHPコード
    PHP 配列操作 (マージ、分割、追加、検索、削除など)
    $フルーツ =
      「リンゴ」
    $fruits =
    array(

    "リンゴ",

    "バナナ",

    "オレンジ",

    "梨");
    if( in_array(
    $フルーツ,PHP 配列操作 (マージ、分割、追加、検索、削除など)$フルーツ) )
    1. echo 「$fruit はすでに配列内にあります」
    2. 3 番目のパラメータはオプションで、検索時に in_array() に型を強制的に考慮させます。 14. array_key_exists() 関数
    3. 指定されたキーが配列内で見つかった場合、関数 array_key_exists() は true を返し、それ以外の場合は false を返します。その形式は次のとおりです: PHPコード
    4. ブール値 array_key_exists(混合キー,配列
    5. 配列);

    次の例では、配列キーでリンゴを検索し、見つかった場合は、この果物の色を出力します。

    PHPコード

    1. $fruit["リンゴ"] = "赤"; $フルーツ["バナナ"] =
    2. "黄色";
    3. $fruit[「梨」] = 「緑」
    4. if(array_key_exists("リンゴ", $フルーツ)){
    5. printf("リンゴの色は %s",$fruit["リンゴ"]); }
    6. //リンゴの色は赤いです
    7. 15. array_search() 関数
    8. array_search() 関数は、配列内の指定された値を検索し、見つかった場合は対応するキーを返し、それ以外の場合は false を返します。その形式は次のとおりです:

    PHPコード

    混合

    array_search(混合針,

    配列干し草[,ブール値厳密])

    PHP 配列操作 (マージ、分割、追加、検索、削除など)
    次の例では、$fruits で特定の日付 (12 月 7 日) を検索し、見つかった場合は、対応する州の関連情報を返します。
    1. PHPコード
    $fruits[

    "リンゴ"] =

    "赤";

    $fruits[
    "バナナ"] =
    "黄色";
    PHP 配列操作 (マージ、分割、追加、検索、削除など)$fruits[
    "スイカ"]=
    "緑";
    1. $founded = array_search("グリーン", $フルーツ); if($設立)
    2. printf("%s が %s で見つかりました。",$founded, $fruits[$founded]);
    3. //スイカが緑で見つかりました
    4. 16. array_keys() 関数 array_keys() 関数は、検索された配列内で見つかったすべてのキーを含む配列を返します。その形式は次のとおりです:
    5. PHPコード
    6. 配列 array_keys(配列 array[,混合検索値])
    7. オプションのパラメーター search_value が含まれている場合、その値に一致するキーのみが返されます。次の例では、$fruit 配列内で見つかったすべての配列を出力します:

    PHPコード

    $fruits[

    "リンゴ"] =

    "赤";

    $fruits[
    "バナナ"] =
    "黄色"; PHP 配列操作 (マージ、分割、追加、検索、削除など)
    $fruits[
    "スイカ"]=
      "緑";
    1. $keys = array_keys($fruits); print_r($keys);
    2. //配列 ( [0] => リンゴ [1] => バナナ [2] => スイカ )

    17. array_values() 関数

    array_values() 関数は、配列内のすべての値を返し、返された配列に数値インデックスを自動的に提供します。その形式は次のとおりです:

    PHPコードPHP 配列操作 (マージ、分割、追加、検索、削除など)
    1. 配列 array_values(配列 配列)

    次の例は、$fruits にある各要素の値を取得します。

    PHPコード
    PHP 配列操作 (マージ、分割、追加、検索、削除など)
    1. $fruits["リンゴ"] = "赤"; $fruits["バナナ"] = "黄色";
    2. $fruits["スイカ"]="緑"; $values = array_values($fruits);
    3. print_r(
    4. $値); //配列 ([0] => 赤 [1] => 黄 [2] => 緑 )
    5. 配列を拡張したり、配列の一部を削除したりする必要がある場合があります。PHP には、配列を拡張および縮小するための関数がいくつか用意されています。これらの関数は、さまざまなキュー実装 (FIFO、LIFO) をエミュレートしたいプログラマに便利です。名前が示すように、これらの関数の関数名 (プッシュ、ポップ、シフト、およびシフト解除) は、その機能を明確に反映しています。
    6. 追記: 従来のキューは、要素の削除と要素の追加の順序が同じであり、先入れ先出し (FIFO) と呼ばれます。対照的に、スタックは追加されたときと逆の順序で要素が削除される別のデータ構造です。これは後入れ先出し (LIFO) になります。
    7. 18. 配列の先頭に要素を追加します
    8. array_unshift() 関数は配列の先頭に要素を追加します。既存のすべての数値キーは、配列内の新しい位置を反映するように変更されますが、関連するキーは影響を受けません。その形式は次のとおりです:

    PHPコード

    int

    array_unshift(

    array

    array,混合変数[,混合変数])

    次の例では、$fruits 配列の前に 2 つのフルーツを追加します。
    PHP 配列操作 (マージ、分割、追加、検索、削除など)PHPコード
    1. $fruits = array("リンゴ","バナナ");
    2. array_unshift(
    $フルーツ,
    "オレンジ",

    "洋梨")

    PHP 配列操作 (マージ、分割、追加、検索、削除など)// $fruits = array("オレンジ","梨","リンゴ","バナナ");
    1. 19. 配列の末尾に要素を追加します array_push() 関数の戻り値は int 型で、データをプッシュした後の配列内の要素の数です。複数の変数をパラメーターとしてこの関数に渡し、複数の変数を同時に配列にプッシュできます。 。その形式は次のとおりです:
    2. PHPコード (配列 配列,混合変数 [,混合変数...])

    次の例では、さらに 2 つのフルーツを $fruits 配列に追加します。

    PHPコード

    1. $fruits = array("リンゴ","バナナ"); array_push($フルーツ,"オレンジ",
    2. "梨")
    3. //$fruits = array("リンゴ","バナナ","オレンジ","梨")
    20. 配列の先頭から値を削除します

array_shift() 関数は、配列内で見つかった要素を削除して返します。その結果、数値キーを使用している場合は、対応するすべての値が下にシフトされますが、連想キーを使用する配列は影響を受けません。その形は

PHPコード

混合PHP 配列操作 (マージ、分割、追加、検索、削除など)array_shift(
配列
配列)
  1. 次の例では、$fruits 配列の最初の要素 apple を削除します。

PHPコード

$fruits = PHP 配列操作 (マージ、分割、追加、検索、削除など)array(
"リンゴ",
"バナナ",
    "オレンジ",
  1. "梨"); $フルーツ = array_shift($フルーツ); // $fruits = array("バナナ","オレンジ","梨") // $fruit = "リンゴ" ;
  2. 21. 配列の末尾から要素を削除します
  3. array_pop() 関数は、配列の最後の要素を削除して返します。その形式は次のとおりです:
  4. PHPコード

混合

array_pop(array target_array)

;

次の例は、$states 配列から最後の状態を削除します。

PHPコード
PHP 配列操作 (マージ、分割、追加、検索、削除など)
  1. $fruits = array("リンゴ",
  2. "バナナ",
"オレンジ",
"梨");

$fruit =

array_pop(

$fruits);
//$fruits = array("リンゴ","バナナ","オレンジ");
PHP 配列操作 (マージ、分割、追加、検索、削除など)//$fruit = "梨";
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。