PHP配列操作(マージ、分割、追加、検索、削除など)_PHPチュートリアル
- WBOYオリジナル
- 2016-07-21 15:16:58786ブラウズ
1. 配列を結合するarray_merge() 関数は、配列を結合し、結合された配列を返します。結果の配列は、最初の入力配列パラメーターで始まり、後続の配列パラメーターが出現する順序で順次追加されます。その形式は次のとおりです:
コードをコピー コードは次のとおりです:
array array_merge (array array1 array2...,arrayN)
この関数は、1 つ以上の配列のセルをマージし、前の配列の後の 1 つの配列内の値。結果の配列を返します。
入力配列に同じ文字列キー名がある場合、キー名の後の値で前の値が上書きされます。ただし、配列に数値キーが含まれている場合、後続の値は元の値を上書きせず、追加されます。
配列のみが指定され、その配列が数値的にインデックス付けされている場合、キー名は連続して再インデックス付けされます。
コードをコピーします コードは次のとおりです:
$fruits = array("apple","banana","pear");
$numbered = array("1") ,"2" ,"3");
$cards = array_merge($fruits, $numbered);
// 出力
// Array ( [0] => apple [1] = > バナナ [ 2] => 梨 [4] => 3 )
array_recursive() 関数および array_merge() 同様に、2 つ以上の配列を結合して結合配列を形成できます。 2 つの違いは、入力配列内のキーが結果配列にすでに存在する場合、関数はそれを異なる方法で処理することです。 array_merge() は、以前に存在していたキー/値のペアを上書きし、現在の入力配列のキー/値のペアに置き換えます。一方、array_merge_recursive() は、2 つの値をマージして、元のキーを持つ新しい配列を形成します。配列名。配列を再帰的に追加する配列マージの形式もあります。その形式は次のとおりです:
コードをコピーします
コードは次のとおりです:
array array_merge_recursive(array array1,array array2[…,array arrayN]) プログラムの例は次のとおりです:
コードをコピーします
コードは次のとおりです:
$fruit1 = array("apple" => "red", "banana" => " yellow"); $fruit2 = array(" pear" => " yellow" "、"apple" => "green"); $result = array_merge_recursive($fruit1, $fruit2);
// 出力
// [リンゴ] => 配列 ( [0] => 赤 [1] => 緑 ) [バナナ] => 黄 [梨] => 黄 )
?>
2 つの色で構成される配列に変換します。値のインデックス付き配列。
3. 配列を接続する
array_combine() 関数は、送信されたキーと対応する値のセットで構成される新しい配列を取得します。その形式は次のとおりです:
コードをコピー
コードは次のとおりです: array array_combine(配列キー、配列値) 2 つの入力配列は同じサイズである必要があり、空にすることはできないことに注意してください。例は次のとおりです
コードをコピーします
コードは次のとおりです:
$name = array("apple", "banana", "orange"); array("red", " yellow", "orange"); $fruit = array_combine($name, $color); // 出力 // Array ( [apple] => red [banana] => yellow [orange] => orange )
4. 配列を分割します array_slice()
array_slice() 関数はキーオフセットから開始して配列の一部を返しますオフセット + 長さの位置で終了します。その形式:
コードをコピー
コードは次のとおりです:
array array_slice (array array, int offset[,int length])
offset が正の値の場合は配列の先頭からのオフセット位置から分割が開始され、offset が負の値の場合は配列の末尾からのオフセット位置から分割が開始されます。オプションの長さパラメータを省略した場合、分割はオフセットから開始され、配列の最後の要素まで進みます。長さが指定され、正の場合、配列の先頭からのオフセット + 長さの位置で終了します。逆に、長さが指定されていて負の場合、配列の先頭から count(input_array)-|length| で終了します。例を考えてみましょう:
コードをコピー コードは次のとおりです:
$fruits = array("Apple", "Banana", "Orange", "Pear", "Grape") , "レモン ", "スイカ");
$subset = array_slice($fruits, 3);
// 出力
// Array ( [0] => 梨 [1] => ; グレープ [ 2] => レモン [3] =>
次に、コードをコピーします
$fruits = array("リンゴ"、"バナナ"、"オレンジ"、"梨"、"ブドウ"、"レモン"、"スイカ");
$subset = array_slice($fruits, 2, -2); print_r($ subset); // 出力 // 配列 ( [0] => オレンジ [1] => 梨 [2] => グレープ )
5. 配列の結合 array_splice()
array_splice() 関数は、配列内の offset から始まり offset+length で終わるすべての要素を削除し、削除された要素を配列の形式で返します。その形式は次のとおりです:
コードをコピー
コードは次のとおりです:
array array_splice (array array, int offset[,length[,array replace]])
offset が正の値の場合、結合は距離から開始されます。 結合は配列の先頭からのオフセットで開始されます。 offset が負の値の場合、結合は配列の末尾からのオフセットで開始されます。オプションの長さパラメータを省略した場合、オフセット位置から始まり配列の末尾で終わるすべての要素が削除されます。長さが指定されており、それが正の場合、結合は配列の先頭からのオフセット + 長さの位置で終了します。逆に、length が指定されていて負の場合、共用体は配列の先頭から count(input_array)-length だけ終了します。例は次のとおりです:
コードをコピーします
コードは次のとおりです:
$fruits = array("Apple", "Banana", "Orange", "Pear", "ブドウ"、"レモン"、"スイカ");
$subset = array_splice($fruits);
print_r($subset); ] => リンゴ [1] => オレンジ [3] => 梨 ) // 配列 ( [0] => ブドウ [1] => > Watermelon ) ?> ; オプションのパラメータ置換を使用して、ターゲット部分を置換する配列を指定できます。例は次のとおりです:
コードをコピーします
コードは次のとおりです:
$fruits = array("Apple", "Banana", "Orange", "Pear", "ブドウ"、"レモン"、"スイカ");
$subset = array_splice($fruits, 2, -1, array("緑のリンゴ", "赤いリンゴ")); ($subset);
/ / 出力
// Array ( [0] => リンゴ [1] => バナナ [2] => 緑のリンゴ [3] => 赤いリンゴ [4] => Watermelon ) // Array ( [0] => Orange [1] => Pear [2] => Grape [3] => Lemon ) ?> 使い方がよくわかりますプログラムからこの関数を呼び出します。
6. 配列の交差 array_intersect()
array_intersect() 関数は、保持されたキーを持つ配列を返します。この配列は、最初の配列に出現し、他のすべての入力配列に出現する値のみで構成されます。その形式は次のとおりです:
コードをコピー
コードは次のとおりです:
array array_intersect(array array1,array array2[,arrayN...])
次の例は値を返します。 $fruit1 配列に表示され、$fruit2 および $fruit3 にも表示されるすべてのフルーツ:
コードをコピー コードは次のとおりです:
$fruit1 = 配列("リンゴ","バナナ","オレンジ");
$fruit2 = array("梨","リンゴ","ブドウ");
$fruit3 = array("スイカ","オレンジ","リンゴ") ); $intersect($fruit1, $fruit2, $fruit3);
// 出力
// 配列 ( [0] =>?>
array_intersect() 関数は、2 つの要素が等しく、同じデータ型を持つ場合にのみ、それらの要素が同じであるとみなします。
7. 連想配列の交差 array_intersect_assoc()
関数 array_intersect_assoc() は、比較の際に配列のキーも考慮する点を除いて、基本的に array_intersect() と同じです。したがって、最初の配列に出現し、他のすべての入力配列にも出現するキーと値のペアのみが結果配列に返されます。
形式は次のとおりです:
コードをコピーします コードは次のとおりです:
array array_intersect_assoc(array array1,array array2[,arrayN...])
次の例は何を返しますか$fruit1 配列に表示され、同時に $fruit2 と $fruit3 に表示されるすべてのキーと値のペア:
コードをコピー コードは次のとおりです:
$fruit1 = array("赤"=>"リンゴ","黄"=>"バナナ","オレンジ"=>"オレンジ");
$fruit2 = array("黄"=>"梨", "赤"=>"リンゴ","紫"= >"ブドウ");
$fruit3 = array("緑"=>"スイカ","オレンジ"=>"オレンジ","赤" =>"Apple");
$intersection = array_intersect_assoc( $fruit1, $fruit2, $fruit3);
// 出力
// Array ( [red] => Apple )
? >
8. 配列の違い array_diff()
関数 array_diff() は、最初の配列に現れるが、他の入力配列には現れない値を返します。この関数は array_intersect() の逆です。 コードをコピーします コードは次のとおりです:
array array_diff(array array1,array array2[,arrayN...])
例は次のとおりです:
コードをコピーします コードは次のとおりです:
< ?php
$fruit1 = array("Apple","Banana","Orange");
$fruit2 = array("Pear","Apple","Grape") ");
$fruit3 = array("スイカ", "オレンジ","リンゴ");
$intersection = array_diff($fruit1, $fruit2, $fruit3);
print_r($intersection);
// 出力
// Array ( [1] => Banana )
?>
9. 連想配列の差集合 array_diff_assoc()
関数 array_diff_assoc() は、基本的に array_diff() と同じです。比較するときに配列のキーも考慮されます。したがって、最初の配列に現れ、他の入力配列には現れないキーと値のペアのみが結果配列に返されます。その形式は次のとおりです:
コードをコピーします コードは次のとおりです:
array array_diff_assoc(array array1,array array2[,arrayN...])
次の例は [ yellow ] のみを返します。 => バナナ。この特定のキーと値のペアは $fruit1 に表示されますが、$fruit2 にも $fruit3 にも存在しないためです。
コードをコピーします コードは次のとおりです:
$fruit1 = array("red"=>"Apple"," yellow"=>"Banana","orange "=> "オレンジ");
$fruit2 = array("黄"=>"梨","赤"=>"リンゴ","紫"=>"ブドウ");
$fruit3 = array("緑"=>"スイカ","オレンジ"=>"オレンジ","赤"=>"リンゴ"); print_r($intersection );
// Output
// Array ( [ yellow] => Banana )
?>
配列を使用する場合、多くの場合、配列を走査する必要があります。多くの場合、配列を反復処理して個々のキーまたは値を取得する (またはキーと値の両方を取得する) 必要があるため、当然のことながら、PHP はこの目的のためにいくつかの関数を提供します。多くの関数は、現在のポインター位置にあるキーまたは値を取得するだけでなく、ポインターを次の適切な位置に移動するという 2 つのタスクを実行します。
10. 現在の配列キーを取得します key()
key() 関数は、input_array の現在のポインター位置にあるキーを返します。その形式は次のとおりです:
コードをコピー
コードは次のとおりです: 混合キー(配列配列)
次の例は、配列を反復処理して移動することにより、$fruits 配列のキーを出力します。ポインタ:
コードをコピー
コードは次のとおりです: $fruits = array("apple"=>"red", "banana"=>" yellow");
while ($ key = key($fruits)) {
printf ("%s
", $key)
}
// リンゴ
// バナナ
;
key() が呼び出されるたびにポインタは移動しないことに注意してください。この目的のために、 next() 関数を使用する必要があります。この関数の唯一の機能は、ポインターを進めるタスクを完了することです。
11. 現在の配列値を取得する current()
current() 関数は、配列内の現在のポインター位置の配列値を返します。その形式は次のとおりです:
コードをコピーします コードは次のとおりです:
mixed current(array array)
前の例を変更して、今回は配列の値を取得します:
コードをコピーします コードは次のようになります:
$fruits = array("apple"=>"red", "banana"=>" yellow"); ) {
printf("%s
", $fruit);
next($fruits)
// 赤
// 黄
12. each()
each() 関数 input_array の現在のキーと値のペアを返し、ポインターを 1 位置進めます。その形式は次のとおりです:
コードをコピー コードは次のとおりです:
array each(array array)
返された配列には 4 つのキーが含まれ、key 0 と key にはキー名が含まれ、key にはキーが含まれます。 1 と value には、対応するデータが含まれます。 each() が実行される前にポインタが配列の末尾にある場合は、false が返されます。
コードをコピーします コードは次のとおりです:
$fruits = array("apple", "banana", "orange", "pear"); // Array ( [1] => apple [value] => apple [0] => 0 [key] => 0 )
each() は、走査するために list() と組み合わせてよく使用されます配列。この例は前の例と似ていますが、配列全体がループで出力されます:
コードをコピー
コードは次のとおりです: $fruits = array("apple", "banana", "オレンジ", "ナシ"); reset($fruits);
while (list($key, $val) = each($fruits))
{
echo "$key =
";
}
// 0 => リンゴ
// 1 => バナナ
// 2 => オレンジ
// 3 => 梨
配列を別の配列に代入すると元の配列がリセットされるため上記の例で、$fruits をループ内の別の変数に代入すると、無限ループが発生します。
これで配列の走査が完了しました。
配列要素の検索、フィルタリング、検索は、配列操作の一般的な機能です。関連する機能をいくつか紹介します。
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 "); if( in_array($fruit,$fruits) )
echo "$fruit はすでに配列内にあります";
3 番目のパラメータはオプションであり、強制されますin_array() を使用して、検索時に型を考慮します。
14. array_key_exists() 関数
指定されたキーが配列内に見つかった場合、array_key_exists() 関数は true を返し、それ以外の場合は false を返します。その形式は次のとおりです:
コードをコピーします コードは次のとおりです:
boolean array_key_exists(mixed key,array array);
次の例では、配列キーで apple が見つかった場合に検索します。 、果物が出力されます。 色:
コードをコピーします。 コードは次のとおりです:
$fruit["apple"] = "red" $fruit["banana"] = " yellow"; ; $fruit["梨"] = "緑"; if(array_key_exists("リンゴ", $fruit)){ printf("リンゴの色は %s",$fruit["リンゴ"]);
//リンゴの色は赤いです
15. array_search() 関数 array_search() 関数は、配列内の指定された値を検索し、見つかった場合は対応するキーを返し、それ以外の場合は false を返します。その形式は次のとおりです:
コードをコピー コードは次のとおりです:
mixed array_search(mixed needle,array haystack[,boolean strict])
次の例は、$fruits で特定の日付を検索します。 (12 月 7 日) が見つかった場合は、対応する州の関連情報を返します:
コードをコピー コードは次のとおりです:
$fruits["apple"] = "red";
$fruits[ "バナナ"] = "黄色 ";
$fruits["スイカ"]="緑";
$founded = array_search("緑", $fruits);
if($founded)
printf("%s が設立されましたon %s.",$founded, $fruits[$founded]);
//watermelon wasfounded on green.
16. array_keys() 関数
array_keys() 関数は、で見つかったすべてのキーを含む配列を返します。検索された配列。その形式は次のとおりです:
コードをコピー コードは次のとおりです:
array array_keys(array array[,mixed search_value])
オプションのパラメータ search_value が含まれている場合、それに一致するキーのみが返されます。値が返されます。次の例では、$fruit 配列内にあるすべての配列を出力します。
コードをコピー コードは次のとおりです。
$fruits["apple"] = "red";
$fruits["banana"; ] = " 黄色";
$fruits["スイカ"]="緑";
$keys = array_keys($keys);
//Array ( [0] => ] => ; バナナ [2] => スイカ )
17. array_values() 関数
array_values() 関数は、配列内のすべての値を返し、返された配列に数値インデックスを自動的に提供します。その形式は次のとおりです: コードをコピー コードは次のとおりです:
array array_values(array array)
次の例は、$fruits で見つかった各要素の値を取得します:
コードをコピーします コードは次のとおりです:
$fruits["apple"] = "red";
$fruits["watermelon"]="green"; ";
$values = array_values( $fruits);
print_r($values);
//Array ( [0] => 赤 [1] => 黄 [2] => 緑 )
配列を拡張したり、配列の一部を削除したりする必要がある場合があります。PHP には、配列を拡張および縮小するための関数がいくつか用意されています。これらの関数は、さまざまなキュー実装 (FIFO、LIFO) をエミュレートしたいプログラマに便利です。名前が示すように、これらの関数の関数名 (プッシュ、ポップ、シフト、およびシフト解除) は、その機能を明確に反映しています。
追記: 従来のキューは、要素の削除と要素の追加の順序が同じであり、先入れ先出し (FIFO) と呼ばれます。対照的に、スタックは追加されたときと逆の順序で要素が削除される別のデータ構造です。これは後入れ先出し (LIFO) になります。
18. 配列の先頭に要素を追加する
array_unshift()関数は、配列の先頭に要素を追加します。既存のすべての数値キーは、配列内の新しい位置を反映するように変更されますが、関連するキーは影響を受けません。その形式は次のとおりです:
コードをコピーします コードは次のとおりです:
int array_unshift(array array,mixed variable[,mixed variable])
次の例では、前に 2 種類のフルーツを追加します$fruits 配列の:
コードをコピーします コードは次のとおりです:
$fruits = array("apple","banana")
array_unshift($fruits,"orange","pear) ")
// $fruits = array(" orange","pear","apple","banana");
19. 配列の最後に要素を追加します
array_push( ) 関数は int 型で、データをプッシュした後の配列の要素数 Number であるため、この関数に複数の変数をパラメーターとして渡し、複数の変数を同時に配列にプッシュできます。その形式は次のとおりです: コードをコピー コードは次のとおりです:
(配列 array,混合変数 [,混合変数...])
次の例では、さらに 2 つのフルーツを $fruits 配列に追加します。
コードをコピーする コードは次のとおりです。
$fruits = array("apple","banana");
array_push($fruits) , "orange","pear")
//$fruits = array("apple","banana","orange","pear")
20. 配列ヘッダーから値を削除します
array_shift () 関数は配列内で見つかった要素を削除して返します。その結果、数値キーが使用されている場合、対応する値はすべて下にシフトされますが、連想キーを使用する配列は影響を受けません。その形式は
コードをコピー コードは次のとおりです:
mixed array_shift(array array)
次の例は、$fruits 配列の最初の要素 apple を削除します:
コードをコピー コードは次のとおりです:
$fruits = array("apple","banana","orange","pear");
$fruit = array_shift($fruits)
// $fruits = array( "banana", "orange","pear")
// $fruit = "apple";
21. 配列の末尾から要素を削除します
array_pop() 関数は、配列の最後の要素を削除して返します。配列。その形式は次のとおりです:
コードをコピーします コードは次のとおりです:
mixed array_pop(aray target_array);
次の例は、$states 配列から最後の状態を削除します。
コードは次のとおりです: $fruits = array("apple","banana","orange","pear"); $fruit = array_pop($fruits); ("リンゴ"、"バナナ"、"オレンジ");
//$フルーツ = "梨";
http://www.bkjia.com/PHPjc/325814.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/325814.html技術記事 1. 配列のマージ array_merge() 関数は、配列をマージし、結合された配列を返します。結果の配列は、最初の入力配列パラメーターから始まり、後続の配列パラメーターが現れる順序で...