Search
  1. array_chunk〔配列を分割する〕
  2. array_merge〔配列を結合する〕
  3. array_merge_recursive〔配列を再帰的に結合〕

array_chunk
配列を分割する

unknown

array array_chunk ( array $配列, int $分割サイズ[, bool $キーの維持] )

各配列を要素数がそれぞれ分割サイズ個になるように、1つの配列を複数の配列に分割し、添字0から始まる多次元配列にして返します。 配列の要素数が分割サイズで割り切れない場合、最後の配列は分割サイズよりも少ない要素数になります。

オプションの第3引数キーの維持TRUEを指定すると、元配列のキーが維持されます。 デフォルトはFALSEで、元配列でのキーは維持されず0からの連番が振り直されます。

<?
#元配列のキーを維持しない場合
$arr = array("apple""banana""grape""melon""remon");
print_r(array_chunk($arr2));
/*
Array
(
    [0] => Array
        (
            [0] => apple
            [1] => banana
        )
    [1] => Array
        (
            [0] => grape
            [1] => melon
        )
    [2] => Array
        (
            [0] => remon
        )
)
*/

#元配列のキーを維持する場合
print_r(array_chunk($arr2TRUE));
/*
Array
(
    [0] => Array
        (
            [0] => apple
            [1] => banana
        )
    [1] => Array
        (
            [2] => grape
            [3] => melon
        )
    [2] => Array
        (
            [4] => remon
        )
)
*/
?>

array_merge
配列を結合する

unknown

array array_merge ( array $配列1, array $配列2[, array ...] )

「前の配列」の末尾に、「後ろの配列」をを追加し、結合後の配列を返します。 キーと値の関係は維持されず0からの連番が振り直されます。

配列に同じ文字列キーがある場合は、後に指定された値が、前の値を上書きします。 配列に同じ数値キーがある場合は、後の値は前の値を上書きせずに追加されます。

キーと値の関係を維持したい場合は、この関数を使用せずに+演算子で配列を結合します。 $result = $array1 + $array2;

配列を再帰的に結合する場合は、array_merge_recursive()関数を使用してください。

<?
$lines[0] = array(0,1,2);
$lines[1] = array(3,4,5);
$lines[2] = array(6,7,8);
$concatArray = array();
for($i=0;$i<count($lines);$i++){
  $concatArray array_merge($concatArray,$lines[$i]);
}
print_r($concatArray);
//Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 )

#通常の配列の場合
$array1 = Array("apple","banana","grape");
$array2 = Array("egg");
$result array_merge($array1$array2);
print_r($result);
//Array ( [0] => apple [1] => banana [2] => grape [3] => egg )

#連想配列の場合
$array1 = Array("a"=>"apple","b"=>"banana","g"=>"grape");
$array2 = Array("e"=>"egg");
$result array_merge($array1$array2);
print_r($result);
//Array ( [a] => apple [b] => banana [g] => grape [e] => egg ) Array

# 「array_merge」と「+演算子」の比較(添字が数値の場合)
$ary1[0] = 111;
$ary1[1] = 222;
$ary1[2] = 333;

$ary2[0] = 444;
$ary2[1] = 555;
$ary2[2] = 666;

#array_mergeを使用すれば、きちんと結合される
$result array_merge($ary1$ary2);
print_r($result);
//Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 [4] => 555 [5] => 666 )

#数値添字の場合、前の値が優先される
$result$ary1$ary2;
print_r($result);
//Array ( [0] => 111 [1] => 222 [2] => 333 ) 

#「array_merge」と「+演算子」の比較(添字が文字列の場合)
$ary1[a] = 111;
$ary1[b] = 222;
$ary1[c] = 333;

$ary2[a] = 444;
$ary2[b] = 555;
$ary2[c] = 666;

#array_mergeを使用した場合、後ろの値が上書きされる
$result array_merge($ary1$ary2);
print_r($result);
//Array ( [0] => 111 [1] => 222 [2] => 333 [a] => 444 [b] => 555 [c] => 666 [3] => 444 [4] => 555 [5] => 666 )

#+演算子を使用した場合、前の値が優先される
$result $ary1$ary2;
print_r($result);
//Array ( [0] => 111 [1] => 222 [2] => 333 [a] => 111 [b] => 222 [c] => 333 )
?>

array_merge_recursive
配列を再帰的に結合

unknown

array_merge_recursive ( array $配列1, array $配列2[, array ...] )

1つ以上の配列の要素を結合し、「前の配列」の末尾に「後の配列」の値を追加し、結合後の配列を返します。

配列に同じ文字列キーがある場合は、これらのキーの値は再帰的に1つに結合されます。 値が配列の場合も、別の配列に対応する要素も結合されます。

配列に同じ数値キーがある場合は、後の値は元の値を上書きせずに追加されます。

<?
$ary1 = Array("a"=>"apple","b"=>"banana","0"=>"cocoa");
$ary2 = Array("a"=>"apple","b"=>"banana","0"=>"cocoa");
$result array_merge_recursive($ary1$ary2);
print_r($result);
/*
Array
(
    [a] => Array
        (
            [0] => apple
            [1] => apple
        )
    [b] => Array
        (
            [0] => banana
            [1] => banana
        )
    [0] => cocoa
    [1] => cocoa
)
*/

#キーと値の関係は保持されない
$ary1 = Array("0"=>"apple","1"=>"banana","2"=>"cocoa");
$ary2 = Array("0"=>"apple","1"=>"banana","2"=>"cocoa");
$result array_merge_recursive($ary1$ary2);
print_r($result);
/*
Array
(
    [0] => apple
    [1] => banana
    [2] => cocoa
    [3] => apple
    [4] => banana
    [5] => cocoa
)
*/

#添字が文字列の場合、 文字キーの場合はキーごとに配列に格納される
$ary1[0] = Array("apple","armond");
$ary1[1] = "banana";

$ary2[0] = "animal";
$ary2[1] = "bird";

$result array_merge_recursive($ary1$ary2);
print_r($result);
/*
Array
(
    [0] => Array
        (
            [0] => apple
            [1] => armond
        )
    [1] => banana
    [2] => cocoa
    [3] => animal
    [4] => bird
    [5] => cocoa
)
*/

#添字が数値の場合、数値キーの場合は、追加される。
$ary1[a] = Array("apple","armond");
$ary1[b] = "banana";

$ary2[a] = "animal";
$ary2[b] = "bird";

$result array_merge_recursive($ary1$ary2);
print_r($result);
/*
Array
(
    [0] => Array
        (
            [0] => apple
            [1] => armond
        )
    [1] => banana
    [2] => cocoa
    [a] => Array
        (
            [0] => apple
            [1] => armond
            [2] => animal
        )
    [b] => Array
        (
            [0] => banana
            [1] => bird
        )
    [3] => animal
    [4] => bird
    [5] => cocoa
)
*/
?>

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women