ホームページ  >  記事  >  バックエンド開発  >  PHPの配列操作方法

PHPの配列操作方法

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

1. 配列を結合する

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

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

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

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

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

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

プログラムの例は次のとおりです。

    $fruit1 = 配列("リンゴ" => "赤", "バナナ" => "黄");

$fruit2 = array("梨" => "黄",​​ "リンゴ" => "緑");

$ result = array_merge_recursive($fruit1, $fruit2);

    // 出力
  1. // Array ( [apple] => Array ( [0] => red [1] => 緑 ) [バナナ] => 黄色 [洋梨] => 黄色 )
  2. これで、キー apple は次の配列を指します。 2 つの色の値。
  3. 3. 配列を接続する
  4. array_combine() 関数は、送信されたキーと対応する値のセットで構成される新しい配列を取得します。その形式は次のとおりです:
  5. array array_combine(配列キー, 配列値)

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

$name = array("apple", "banana", "orange");

$color = array("red", " yellow", "orange") ");

  1. $fruit = array_combine($name, $color);
print_r($fruit);

// 出力

// Array ( [apple] => red [banana] => ; yellow [ orange] => orange )

  1. ?>
  2. 4. array_slice() を分割します
  3. array_slice() 関数は、キー オフセットから始まる配列の一部を返します。そしてオフセット+長さの位置で終了します。その形式:
    1. array array_slice (array array, int offset[,int length])

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

    1. $fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon"); B u $ Subset = Array_SLICE ($ From, 3);
    2. Print_r ($ Subset) ] => Watermelon )
    3. ;負の長さ:

    $fruits = array("Apple ", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon"

    );

    $subset = array_slice($fruits, 2, -2);

    print_r($subset) // 出力

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

      $fruits = array("Apple", "Banana", "Orange", "Pear", "Grape", "Lemon", "Watermelon") ;
    1. $subset = array_splice($fruits, 4);

    print_r($subset); // 出力

    // 配列 ([ 0] => [1] => バナナ [2] => オレンジ [3] => 梨 )

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

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

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

      次の例は、$fruit1 配列に表示される項目と、 $fruit2 および $fruit3 すべての果物:

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

      $fruit2 = array("Pear","Apple") ,"ブドウ ");

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

      1. $intersect($fruit1, $fruit2, $fruit3); ;
      2. // 出力
      3. // Array ( [0] => Apple )
      4. ?>
      5. array_intersect() 関数は、2 つの要素が等しく、同じデータ型であると考えてください。
      6. 7. 連想配列の交差 array_intersect_assoc()
      関数 array_intersect_assoc() は、比較の際に配列のキーも考慮する点を除いて、基本的に array_intersect() と同じです。したがって、最初の配列に出現し、他のすべての入力配列にも出現するキーと値のペアのみが結果配列に返されます。

      形式例:

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

      下の例は $fruit1 数グループ内に返されます。 $fruit2 と $fruit3 も同時に出てきますすべてのキーと値のペア:

      $fruit1 = array("red"=>"Apple"," yellow"=>"Banana","orange"=>" Orange ");

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

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

      $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);

      1. print_r ( $intersection);
      2. // 出力
      3. // 配列 ( [red] => Apple )
      4. 8.
      5. 機能array_diff() は、最初の配列には含まれるが、他の入力配列には含まれない値を返します。この関数は array_intersect() の逆です。
      6. array array_diff(array array1,array array2[,arrayN...])

      例は次のとおりです:

      1. $fruit1 = array("Apple","Banana","Orange");
      2. $fruit2 = array("Pear","Apple","Grape"); Fruit3 = array("スイカ","オレンジ","アップル");
      3. $intersection = array_diff($fruit1, $fruit2, $fruit3);
      4. // 出力
      5. //Array ([1] => Banana)
      6. ?>
      7. 9. 連想配列の差分集合 array_diff_assoc()

      関数 array_diff_assoc ()内は基本的に同じですarray_diff() は、比較時に配列のキーも考慮する点が異なります。したがって、最初の配列に現れ、他の入力配列には現れないキーと値のペアのみが結果配列に返されます。その形式は次のとおりです。

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

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

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

      $fruit3 = array("緑"=>"スイカ") ,"オレンジ"=>"オレンジ","赤"=>"アップル");

      $intersection = array_diff_assoc($fruit1, $fruit2, $fruit3);

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

      混合キー(配列 array)

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

      $fruits = array("リンゴ" =>"赤", "バナナ"=>"黄");

      1. while ($key = key($fruits)) {
      printf("%s
      ", $key) ;

      next($fruits);

      }

      // リンゴ

      1. // バナナ
      2. key() が呼び出されるたびにポインタが移動するわけではないことに注意してください。この目的のために、 next() 関数を使用する必要があります。この関数の唯一の機能は、ポインターを進めるタスクを完了することです。
      3. 11. 現在の配列値を取得する current()
      current() 関数は、配列内の現在のポインター位置にある配列値を返します。その形式は次のとおりです:

      mixed current(array array)

      今回は、配列の値を取得したいとします:

      1. $fruits = array("apple"=>"red", "banana"=>" yellow");
      2. while ($fruit = current($fruits)) {
      3. printf("%s
        ", $fruit);
      4. next($fruits);
      5. }
      6. // 赤
      7. // 黄色

      12.現在の配列キーとvalue each()

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

      1. array each(array array)

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

      1. $fruits = array("リンゴ", "バナナ", "オレンジ", "梨");
      2. print_r (each($fruits)) // 配列 ([1] => ; apple [value] => apple [0] => 0 [key] => 0 )
      3. each() は、配列を走査するためによく使用されます。この例は前の例と似ていますが、配列全体がループで出力されます。

      $fruits = array("apple", "banana", "orange", "pear");フルーツ);

        while (list($key, $val) = each($fruits))
      1. {
      2. echo "$key => $val
        "
      3. } }
      4. // 0 => リンゴ
      5. // 1 => オレンジ
      6. // 3 => になるから割り当て時にリセットされるある配列から別の配列へ 元の配列ポインター したがって、上記の例で $fruits をループ内の別の変数に代入すると、無限ループが発生します。
      7. これで配列の走査が完了しました。
      8. 配列要素の検索、フィルタリング、検索は、配列操作の一般的な機能です。関連する機能をいくつか紹介します。
      13. in_array() 関数

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

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

      次の例を見て、変数 apple がすでに配列内にあるかどうかを確認してみましょう。つまり、段落を出力します。

      $fruit = "apple"

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

        echo "$fruit はすでに配列内にあります";

      3 番目のパラメータはオプションであり、検索時に in_array() に型を強制します。

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

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

      1. $fruit["apple"] = "赤";
      2. $fruit["pear"] = "緑"; apple", $fruit)){
      3. printf("リンゴの色は %s",$fruit["apple"]);
      4. }
      5. //リンゴの色は赤です
      6. 15 . array_search () 関数

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

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

      1. 次の例では、$fruits で特定の日付 (12 月 7 日) を検索し、見つかった場合はそれを返します。対応する状態について:

      $fruits["apple"] = "red";

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

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

        if($founded)
      1. printf("%s が %s で見つかりました。",$founded, $fruits[$founded]);
      2. //スイカが緑色で見つかりました。
      3. 16. array_keys() 関数
      4. array_keys() 関数は、検索された配列で見つかったすべてのキーを含む配列を返します。次の形式になります。
      array array_keys(array array[,mixed search_value])

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

      $fruits["apple"] = "red";

        $fruits["banana"] = " yellow";スイカ"]="緑";
      1. $keys = array_keys($fruits);
      print_r($keys);

      //Array ( [0] => リンゴ [1] => バナナ [ 2] => スイカ )

      1. 17. array_values() 関数
      2. array_values() 関数は、配列内のすべての値を返し、返された配列に数値インデックスを自動的に提供します。次の形式になります。
      3. array array_values(array array)

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

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

      $fruits["バナナ"] = "黄色";

        $fruits["スイカ"]="緑";
      1. $values = array_values($fruits);
      print_r($values );

      //Array ([0] => red [1] => yellow [2] => green )

      1. 場合によっては、配列を拡張したり、配列の一部を削除したりする必要があります。配列の場合、配列を拡張および縮小するための PHP 関数が提供されます。これらの関数は、さまざまなキュー実装 (FIFO、LIFO) をエミュレートしたいプログラマに便利です。名前が示すように、これらの関数の関数名 (プッシュ、ポップ、シフト、およびシフト解除) は、その機能を明確に反映しています。
      2. PS: 従来のキューは、要素の削除と要素の追加の順序が同じであり、先入れ先出し (FIFO) と呼ばれます。対照的に、スタックは追加されたときと逆の順序で要素が削除される別のデータ構造です。これは後入れ先出し (LIFO) になります。
      3. 18. 配列の先頭に要素を追加します

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

      T n int Array_unshift (配列 配列, 混合変数 [, 混合変数])

      次の例では、$ Froms 配列の前に 2 種類の果物を追加します: "Apple",, "banana");

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

        // $fruits = array("orange","pear","apple","banana");
      19.配列の末尾に要素を追加します

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

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

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

      $fruits = array ("リンゴ","バナナ");

      array_push($fruits,"オレンジ","梨")

        //$フルーツ = array("リンゴ","バナナ","オレンジ","梨")
      20. 配列の先頭から値を削除する

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

      mixed array_shift(array array)

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

      $fruits = array("apple","banana ", "オレンジ","梨");

      $fruit = array_shift($fruits);

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

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

      mixed array_pop(aray target_array);

      1. 以下の例子从$states数组删除了最後の一州:

      $果物 = array("リンゴ","バナナ","オレンジ","梨");

      $fruit = array_pop($fruits);

        //$fruits = array("リンゴ","バナナ","オレンジ");
      1. //$フルーツ= "梨";

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