ホームページ  >  記事  >  バックエンド開発  >  PHP 配列操作 (マージ、分割、追加、検索、削除など)

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

WBOY
WBOYオリジナル
2016-06-23 13:09:34923ブラウズ

1. 配列のマージ

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

Php コード

  1. array array_merge (array array1 array2...,arrayN)

この関数は、1 つ以上の配列のセルを 1 つの数値にマージします。グループは前の配列の後に追加されます。結果の配列を返します。

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

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

PHP コード

  1. $fruits = array("apple","banana","pear")
  2. $numbered = array("1","2"," 3");
  3. $cards = array_merge($fruits, $numbered);
  4. print_r($cards);
  5. // 出力
  6. // Array ( [0] => apple [1] = >バナナ [2] => 梨 [3] => 1 [4] => 2 [5] => 3 )
  7. 2. 配列を追加します
array_merge_recursive ) 関数は array_merge() と同じで、2 つ以上の配列を結合して結合された配列を形成できます。 2 つの違いは、入力配列内のキーが結果配列に既に存在する場合、関数は異なる方法で処理することです。 array_merge() は、以前に存在していたキー/値のペアを上書きし、現在の入力配列のキー/値のペアに置き換えます。一方、array_merge_recursive() は、2 つの値をマージして、元のキーを持つ新しい配列を形成します。配列名。 配列を再帰的に追加する配列結合の形式もあります。その形式は次のとおりです:

Php コード

array array_merge_recursive(array array1,array array2[…,array arrayN])

  1. プログラムの例は次のとおりです。
PHP コード

< ;?php

$fruit1 = array("apple" => "赤", "バナナ" => "黄");

$fruit2 = array("梨" => "黄") , "apple " => "green");
    $result = array_merge_recursive($fruit1, $fruit2); // 出力
  1. // 配列 ( [apple] => ; 配列 ([0] => 赤 [1] => 緑 ) [バナナ] => 黄 [洋梨] => 黄 )
  2. キーのリンゴは次のようになります。数値グループ。この配列は 2 つの色の値のインデックス付き配列で構成されます。
  3. 3. 配列を接続する
  4. array_combine() 関数は、送信されたキーと対応する値のセットで構成される新しい配列を取得します。その形式は次のとおりです:
  5. Java コード
array array_combine(配列キー,配列値)

2 つの入力配列は同じサイズである必要があり、空にすることはできないことに注意してください。例は次のとおりです

Php コード

  1. $name = array("apple", "banana", "orange");
  2. $color = array("red", " yellow", "orange"); = array_combine($name, $color);
  3. print_r($fruit);
  4. // 出力
  5. // 配列 ([リンゴ] => 赤 [バナナ] => 黄 [オレンジ] => ; オレンジ)
  6. ?>その形式:
Php コード

array array_slice (array array, int offset[,int length])

offset が正の値の場合、分割は配列から行われます。開始オフセット位置 ; offset が負の値の場合、分割は配列の末尾からのオフセットで開始されます。オプションの長さパラメータが省略された場合、分割はオフセットから開始され、配列の最後の要素まで進みます。長さが指定されており、それが正の場合、配列の先頭からのオフセット + 長さの位置で終了します。逆に、長さが指定されていて負の場合、配列の先頭から count(input_array)-|length| で終了します。例を考えてみましょう:

  1. Php コード

$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon") , "スイカ");

$subset = array_slice($fruits, 3);

  1. // 出力
  2. // Array ( [0] => 梨 [1] ] => グレープ [2] => レモン [3] => スイカ )
  3. 次に、下側の負の長さを使用します:
  4. < ;? php
  5. $fruits = array("リンゴ"、"バナナ"、"オレンジ"、"梨"、"ブドウ"、"レモン"、"スイカ"); , 2 , -2);
  6. print_r($subset);

// 出力

// 配列 ([0] => オレンジ [1] => 梨 [2] => グレープ )

?>

  1. 5. array_splice() を結合します
  2. array_splice() 関数は、offset で始まり offset+length で終わる配列からすべての要素を削除し、削除された要素を次の形式で返します。配列の。その形式は次のとおりです:
  3. Php コード
  4. array array_splice (array array, int offset[,length[,array replace]])
  5. offset is 正の場合、結合は配列から行われます。 offset が負の値の場合、先頭からのオフセット位置から結合が開始され、配列の末尾からのオフセット位置から結合が開始されます。オプションの長さパラメータを省略した場合、オフセット位置から始まり配列の末尾で終わるすべての要素が削除されます。長さが指定されており、それが正の場合、結合は配列の先頭からのオフセット + 長さの位置で終了します。逆に、length が指定されていて負の場合、共用体は配列の先頭から count(input_array)-length だけ終了します。例は次のとおりです:

Php コード

  1. $fruits = array("リンゴ"、"バナナ"、"オレンジ"、"梨"、"ブドウ"、"レモン"、"スイカ"); ($fruits, 4);
  2. print_r($fruits);
  3. // 出力
  4. // 配列 ([0] => Apple [1] => ; バナナ [2] => オレンジ [3] => 梨 )
  5. // 配列 ( [0] => ブドウ [1] => レモン [2] => スイカ )
  6. ?>
オプションのパラメータ replace を使用して、ターゲット部分を置換する配列を指定できます。例は次のとおりです。

Php コード

  1. $fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "レモン", "スイカ");
  2. $subset = array_splice($fruits, 2, -1, array("Green Apple", "Red Apple"));
  3. print_r($fruits);
  4. print_r ($subset );
  5. // 出力
  6. // Array ( [0] => リンゴ [1] => バナナ [2] => 緑のリンゴ [3] => 赤いリンゴ [4] ] => Watermelon
  7. from プログラムでは、この関数の使用方法が明確にわかります。
  8. 6. 配列の交差 array_intersect()

array_intersect() 関数は、最初の配列と他のすべての入力配列にのみ出現するキーと、出現する値を保持する配列を返します。その形式は次のとおりです:

Php コード

array array_intersect(array array1,array array2[,arrayN...])

次の例は、$fruit1 の数値を返します。グループであり、$fruit2 にあり、$fruit3 にも表示されるすべてのフルーツ:

Php コード

$fruit1 = array("Apple","Banana","Orange") ;

$fruit2 = array("梨","リンゴ","ブドウ");

$fruit3 = array("スイカ","オレンジ","リンゴ"); , $fruit2, $fruit3 );

print_r($intersection)

    //Array ([0] => Apple)
  1. の場合のみqual と have データ型が同じ場合にのみ、array_intersect() 関数はそれらを同じであるとみなします。
  2. 7. 連想配列の交差 array_intersect_assoc()
  3. 関数 array_intersect_assoc() は、比較の際に配列のキーも考慮する点を除いて、基本的に array_intersect() と同じです。したがって、最初の配列に出現し、他のすべての入力配列にも出現するキーと値のペアのみが結果配列に返されます。
  4. 形式は次のとおりです:
  5. Php コード
  6. array array_intersect_assoc(array array1,array array2[,arrayN...])

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

Php code

  1. $fruit1 = array ("red "=>"リンゴ","黄"=>"バナナ","オレンジ"=>"オレンジ");
  2. $fruit2 = array("黄"=>"梨"," 赤"= >"リンゴ","紫"=>"ブドウ");
  3. $fruit3 = array("緑"=>"スイカ","オレンジ"=>"オレンジ","赤" => "Apple");
  4. $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
  5. print_r($intersection) // 出力
  6. // 配列 ( [ red] = > Apple )
  7. ?>
8. 配列の差分 array_diff()

関数 array_diff() は、最初の配列にあるものを返しますが、入力配列にない他の値も返します。この関数は array_intersect() の逆です。

PHP コード

array array_diff(array array1,array array2[,arrayN...])

  1. 例は次のとおりです:

P HPコード

< ?php

$ Fruit1 = array("Apple","Banana","Orange");

    $fruit2 = array("Pear","Apple","Grape");スイカ","オレンジ","アップル");
  1. $ Intersection = Array_diff ($ Fruit1, $ Fruit2, $ Fruit3); 1] = & GT ; Banana )
  2. ?>

  3. 9 . 連想配列 array_diff_assoc() の差集合
  4. 関数 array_diff_assoc() と配列 y_diff() は、キーを比較するときに配列も考慮する点を除いて、基本的に同じです。したがって、最初の配列に現れ、他の入力配列には現れないキーと値のペアのみが結果配列に返されます。その形式は次のとおりです:
  5. Php コード

    array array_diff_assoc(array array1,array array2[,arrayN…])

    次の例は、次の理由により [ yellow] => Banana のみを返します。 this 特殊なキーと値のペアは $fruit1 に表示されますが、$fruit2 にも $fruit3 にも存在しません。

    Php コード

      $fruit1 = array("red"=>"Apple"," yellow"=>"バナナ","orange"=>"オレンジ" );
    $fruit2 = array("黄色"=>"梨","赤"=>"リンゴ","紫"=>"ブドウ");

    $fruit3 = array("緑") =>"スイカ","オレンジ"=>"オレンジ","赤"=>"リンゴ");

    $intersection = array_diff_assoc($fruit1, $fruit2, $fruit3);交差点);

    // 出力
      // Array ([ yellow] => Banana )
    1. ?>
    2. 配列の使用 このプロセスには、多くの場合、配列の走査が含まれます。多くの場合、配列を反復処理して個々のキーまたは値を取得する (またはキーと値の両方を取得する) 必要があるため、当然のことながら、PHP にはこの目的のためにいくつかの関数が用意されています。多くの関数は、現在のポインター位置にあるキーまたは値を取得するだけでなく、ポインターを次の適切な位置に移動するという 2 つのタスクを実行します。
    3. 10. 現在の配列キーを取得します key()

      key() 関数は、input_array 内の現在のポインター位置にあるキーを返します。その形式は次のとおりです:

      Php コード

      1. 混合キー(配列配列)

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

      PHP コード

        $fruits = array("apple"=>"red", "banana"=>" yellow")
      1. while ($key = key($fruits)) {
      2. printf("% s
        ", $key);
      3. next($fruits) }
      4. // リンゴ
      5. // バナナ
      そのキーに注意してください() が毎回呼び出されます。 ポインタは移動しません。この目的のために、 next() 関数を使用する必要があります。この関数の唯一の機能は、ポインターを進めるタスクを完了することです。

      11. 現在の配列値を取得する current()

      current() 関数は、配列内の現在のポインター位置にある配列値を返します。その形式は次のとおりです:

      Php コード

      mixed current(array array)

      1. 前の例を変更して、今回は配列値を取得したいとします:

      PHPコード

      $fruits = array("apple"=>"red", "banana"=>" yellow");

      while ($fruit = current($fruits)) {

        printf("% s
        ", $fruit);
      1. next($fruits);
      2. }
      3. // 赤
      4. // 黄色
      5. 12.現在の配列キーを取得しますand value each()

      each() 関数は、input_array の現在のキーと値のペアを返し、ポインターを 1 位置進めます。その形式は次のとおりです:

      Php コード

      array each(array array)

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

      PHP コード

      $fruits = array("apple", "banana", "orange", "pear")

      // 配列( [1] => apple [value] => apple [0] => 0 [key] => 0 )
      1. each() は、走査するために list() と組み合わせてよく使用されます配列。この例は前の例と似ていますが、配列全体がループで出力されます:
      Php code

      $fruits = array("apple", "banana", "orange", "pear") ;

      reset($fruits);

      while (list($key, $val) = each($fruits))
      1. {
      2. echo "$key => $val
        " ;
      3. }
      4. // 0 => バナナ
      5. // 2 => 梨
      6. ある配列を別の配列に代入すると元の配列ポインタがリセットされるため、上記の例でループ内で $fruits を別の変数に代入すると無限ループが発生します。

        これで配列の走査が完了しました。

        配列要素の検索、フィルタリング、および検索は、配列操作の一般的な機能です。関連する機能をいくつか紹介します。

        13. in_array() 関数

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

        Php コード

        1. boolean in_array(mixed needle,array haystack[,boolean strict]);

        変数 apple がすでに配列内にある場合は、情報を出力します:

        Php code

        1. $fruit = "apple"
        2. $fruits = array("apple","banana","orange"; ,"pear");
        3. if( in_array($fruit,$fruits) )
        4. echo "$fruit はすでに配列内にあります";

        3 番目のパラメータは、in_array() を強制します。検索するときは種類を考慮してください。

        14. array_key_exists() 関数

        関数 array_key_exists() は、指定されたキーが配列内で見つかった場合は true を返し、それ以外の場合は false を返します。その形式は次のとおりです:

        Php コード

          boolean array_key_exists(mixed key,array array); 次の例では、配列キーで apple を検索し、見つかった場合は出力します。この果物の色:
        Php コード

        $fruit["apple"] = "赤";

        $fruit["banana"] = "黄色"; ] = "緑" ;

        if(array_key_exists("apple", $fruit)){

        printf("apple の色は %s",$fruit["apple"]);
        1. / /apple の色は赤です
        2. 15. array_search() 関数
        3. array_search() 関数は、配列内の指定された値を検索し、見つかった場合は対応するキーを返し、それ以外の場合は false を返します。その形式は次のとおりです:

        Php コード

        mixed array_search(mixed needle,array haystack[,boolean strict])

        次の例では、$fruits で特定の日付 (12 月 7 日) を検索します。 ) が見つかった場合は、対応する州の関連情報を返します:

        Php コード
        $fruits["apple"] = "red"

        $fruits["banana"] = " yellow";

        $fruits["watermelon"]="green";

        $founded = array_search("green", $fruits);

        if($founded)

        printf("%s が %s で見つかりました。" ,$founded, $fruits[$founded]);
        1. //watermelon は green で設立されました。array_keys() 関数
        2. 含む検索された配列内で見つかったすべてのキー。その形式は次のとおりです:
        3. Php コード
        4. array array_keys(array array[,mixed search_value])

        オプションのパラメーター search_value が含まれている場合、この値に一致するキーのみが返されます。次の例では、$fruit 配列内で見つかったすべての配列を出力します。

        $fruits["watermelon"]="green";

        $keys = array_keys($fruits);

        1. //Array ([0] => リンゴ [1] ] => バナナ [2] => スイカ )
        2. array_values() 関数は配列内のすべての値を返し、指定された数値を自動的にグループ化します索引。その形式は次のとおりです:
        3. Php コード
        array array_values(array array)

        次の例は、$fruits で見つかった各要素の値を取得します。

        PHPコード

        $fruits["リンゴ"] = "赤";

        $fruits["スイカ"] = "緑"; array_values($fruits );

        print_r($values);
        //Array ([0] => 配列を拡張したり、配列の一部を削除したりする必要がある場合、PHP には拡張および配列の縮小。これらの関数は、さまざまなキュー実装 (FIFO、LIFO) をエミュレートしたいプログラマに便利です。名前が示すように、これらの関数の関数名 (プッシュ、ポップ、シフト、およびシフト解除) は、その機能を明確に反映しています。

        PS: 従来のキューは、要素の削除と要素の追加の順序が同じであり、先入れ先出し (FIFO) と呼ばれます。対照的に、スタックは追加されたときと逆の順序で要素が削除される別のデータ構造です。これは後入れ先出し (LIFO) になります。

        18. 配列の先頭に要素を追加します
        1. array_unshift() 関数は、配列の先頭に要素を追加します。既存のすべての数値キーは、配列内の新しい位置を反映するように変更されますが、関連するキーは影響を受けません。その形式は次のとおりです:
        2. Php コード
        3. int array_unshift(array array,mixed variable[,mixed variable])

        $fruits 配列の前に次の例を追加します 2 種類果物の数:

        Php コード

        $fruits = array("apple","banana");

        array_unshift($fruits,"orange","pear")

        // $fruits = array ("orange", "pear","apple","banana");

        19. 配列の最後に要素を追加します

        1. array_push() 関数の戻り値は次のとおりです。 int 型。データの要素の数の後に配列にプッシュされます。この関数に複数の変数をパラメータとして渡し、複数の変数を同時に配列にプッシュできます。その形式は次のとおりです:

        Php コード

        (配列 array,混合変数 [,混合変数...])

        1. 次の例では、さらに 2 つのフルーツを $fruits 配列に追加します。
        2. PHP コード
        $fruits = array("apple","banana");

        array_push($fruits,"orange","pear")

        //$fruits = array("apple ", "banana","orange","pear")

        20. 配列の先頭から値を削除します

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

        Php コード

        1. mixed array_shift(array array)

        次の例では、$fruits 配列の最初の要素 apple を削除します。

        PHP コード

        $フルーツ = array("リンゴ","バナナ","オレンジ","梨");
          $fruit = array_shift($fruits); // $fruits = array("バナナ","オレンジ" ," pear")
        1. // $fruit = "apple";
        21. 配列の末尾から要素を削除します

        array_pop() 関数は、配列の最後の要素を削除して返します。その形式は次のとおりです:

        Php コード

        mixed array_pop(aray target_array); 次の例では、$states 配列から最後の状態を削除します。

        PHP コード

        1. $fruits = array("リンゴ","バナナ","オレンジ","梨");
        $fruit = array_pop($fruits)

        //$fruits = array("リンゴ","バナナ" , "オレンジ");

        //$フルーツ = "梨";

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