phpベースの配列のマージ、分割、区別値関数セット
PHP配列の結合、分割、区別取値関数セット
PHPの配列機能が強いと言われていますが、本当にプロジェクトに使われている中でしか感じられません.少なくとも、今は徐々にその奥義に気づいていると思います.
連結配列には、次の3つの関数があります.
1.array_combine()
2つのパラメータ配列を持ち、パラメータ配列1の値を新しい配列のキーとし、パラメータ配列2の値を新しい配列の値とする.簡単です.
例:
上記の例では、次のように出力されます.
2.array_merge()
2つのパラメータ配列を持ち,配列2を配列1の後ろに簡単に追加して新しい配列を構成する.
例:
上記の例では、次のように出力されます.
3.array_merge_recursive()
上記の関数と同様に、追加時に追加するキーが存在することを発見した場合、array_merge()の処理は、前のキー値を上書きし、array_merge_recursive()の処理は,サブ配列を再構成し,重複するキーの値を新しい数値配列に構成する.
例:
前例では出力
分割配列には2つの関数があります.
1.array_slice()
3つのパラメータを持ち、パラメータ1はターゲット配列、パラメータ2はoffset、パラメータ3はlengthである.ターゲット配列からoffsetからlengthの長さのサブ配列を取り出す役割を果たす.
offsetが正数の場合、開始位置は配列の先頭からoffsetを調べ、offsetが負数の場合は配列の末尾からoffsetを調べる.lengthが正数である場合、取り出したサブ配列要素の個数はlengthであることは間違いなく、lengthが負である場合、サブ配列はoffsetから配列先頭count(ターゲット配列)-|length|まで終了する.特に、lengthが空の場合、終了位置は配列の最後にある.
例:
上記の例では、次のように出力されます.
2.array_splice()
3つのパラメータを持ち、offsetから長さlengthのサブ配列を削除する役割を果たします.
例:
値の区別関数は4つあります.
1.array_intersect()
パラメータが不定で、すべて配列であり、すべての配列の共通要素の値からなる配列を返します.配列のキーは最初の配列のキーによって与えられます.
例:
上記の例では、次のように出力されます.
2.array_intersect_assoc()
前の関数に基づいて、すべての配列のキーと値が同じキー値のペアを返します.
例:
上記の例では、次のように出力されます.
3.array_diff()
複数の配列を持ち、最初の配列にあり、後ろの配列にないすべての値からなる新しい配列を返します.対応するキーは最初の配列から取られます.
例:
上記の例では、次のように出力されます.
4.array_diff_assoc()
前の関数に基づいて、一致値だけでなくキーも一致する必要があります.
例:
上記の例では、次のように出力されます.
PHPの配列機能が強いと言われていますが、本当にプロジェクトに使われている中でしか感じられません.少なくとも、今は徐々にその奥義に気づいていると思います.
連結配列には、次の3つの関数があります.
1.array_combine()
2つのパラメータ配列を持ち、パラメータ配列1の値を新しい配列のキーとし、パラメータ配列2の値を新しい配列の値とする.簡単です.
例:
- php
- $a = array('green', 'red', 'yellow');
- $b = array('avocado', 'apple', 'banana');
- $c = array_combine($a, $b);
-
- print_r($c);
- ?>
-
上記の例では、次のように出力されます.
- Array
- (
- [green] => avocado
- [red] => apple
- [yellow] => banana
- )
2.array_merge()
2つのパラメータ配列を持ち,配列2を配列1の後ろに簡単に追加して新しい配列を構成する.
例:
- php
- $arrayarray1 = array("color" => "red", 2, 4);
- $arrayarray2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
- $result = array_merge($array1, $array2);
- print_r($result);
- ?>
-
上記の例では、次のように出力されます.
- Array
- (
- [color] => green
- [0] => 2
- [1] => 4
- [2] => a
- [3] => b
- [shape] => trapezoid
- [4] => 4
- )
3.array_merge_recursive()
上記の関数と同様に、追加時に追加するキーが存在することを発見した場合、array_merge()の処理は、前のキー値を上書きし、array_merge_recursive()の処理は,サブ配列を再構成し,重複するキーの値を新しい数値配列に構成する.
例:
- $ar1 = array("color" => array("favorite" => "red"), 5);
- $ar2 = array(10, "color" => array("favorite" => "green", "blue"));
- $result = array_merge_recursive($ar1, $ar2);
- ?>
-
前例では出力
- $result:
-
- Array
- (
- [color] => Array
- (
- [favorite] => Array
- (
- [0] => red
- [1] => green
- )
-
- [0] => blue
- )
-
- [0] => 5
- [1] => 10
- )
分割配列には2つの関数があります.
1.array_slice()
3つのパラメータを持ち、パラメータ1はターゲット配列、パラメータ2はoffset、パラメータ3はlengthである.ターゲット配列からoffsetからlengthの長さのサブ配列を取り出す役割を果たす.
offsetが正数の場合、開始位置は配列の先頭からoffsetを調べ、offsetが負数の場合は配列の末尾からoffsetを調べる.lengthが正数である場合、取り出したサブ配列要素の個数はlengthであることは間違いなく、lengthが負である場合、サブ配列はoffsetから配列先頭count(ターゲット配列)-|length|まで終了する.特に、lengthが空の場合、終了位置は配列の最後にある.
例:
- php
- $input = array("a", "b", "c", "d", "e");
-
- $output = array_slice($input, 2); // returns "c", "d", and "e"
- $output = array_slice($input, -2, 1); // returns "d"
- $output = array_slice($input, 0, 3); // returns "a", "b", and "c"
-
- // note the differences in the array keys
- print_r(array_slice($input, 2, -1));
- print_r(array_slice($input, 2, -1, true));
- ?>
-
上記の例では、次のように出力されます.
- Array
- (
- [0] => c
- [1] => d
- )
- Array
- (
- [2] => c
- [3] => d
- )
2.array_splice()
3つのパラメータを持ち、offsetから長さlengthのサブ配列を削除する役割を果たします.
例:
- $input = array("red", "green", "blue", "yellow");
- array_splice($input, 2);
- // $input is now array("red", "green")
-
- $input = array("red", "green", "blue", "yellow");
- array_splice($input, 1, -1);
- // $input is now array("red", "yellow")
-
- $input = array("red", "green", "blue", "yellow");
- array_splice($input, 1, count($input), "orange");
- // $input is now array("red", "orange")
-
- $input = array("red", "green", "blue", "yellow");
- array_splice($input, -1, 1, array("black", "maroon"));
- // $input is now array("red", "green",
- // "blue", "black", "maroon")
-
- $input = array("red", "green", "blue", "yellow");
- array_splice($input, 3, 0, "purple");
- // $input is now array("red", "green",
- // "blue", "purple", "yellow");
- ?>
値の区別関数は4つあります.
1.array_intersect()
パラメータが不定で、すべて配列であり、すべての配列の共通要素の値からなる配列を返します.配列のキーは最初の配列のキーによって与えられます.
例:
- php
- $arrayarray1 = array("a" => "green", "red", "blue");
- $arrayarray2 = array("b" => "green", "yellow", "red");
- $result = array_intersect($array1, $array2);
- ?>
-
上記の例では、次のように出力されます.
- Array
- (
- [a] => green
- [0] => red
- )
2.array_intersect_assoc()
前の関数に基づいて、すべての配列のキーと値が同じキー値のペアを返します.
例:
- $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
- $array2 = array("a" => "green", "yellow", "red");
- $result_array = array_intersect_assoc($array1, $array2);
- ?>
-
上記の例では、次のように出力されます.
- Array
- (
- [a] => green
- )
3.array_diff()
複数の配列を持ち、最初の配列にあり、後ろの配列にないすべての値からなる新しい配列を返します.対応するキーは最初の配列から取られます.
例:
- $array1 = array("a" => "green", "red", "blue", "red");
- $array2 = array("b" => "green", "yellow", "red");
- $result = array_diff($array1, $array2);
-
- print_r($result);
- ?>
-
上記の例では、次のように出力されます.
- Array
- (
- [1] => blue
- )
4.array_diff_assoc()
前の関数に基づいて、一致値だけでなくキーも一致する必要があります.
例:
- $array1 = array ("a" => "green", "b" => "brown", "c" => "blue", "red");
- $array2 = array ("a" => "green", "yellow", "red");
- $result = array_diff_assoc($array1, $array2);
- ?>
-
上記の例では、次のように出力されます.
- Array
- (
- [b] => brown
- [c] => blue
- [0] => red
- )