2017-11-09 9 views
1

array_mergeを使用して3次元配列を2次元配列にマージします。ループ内で配列をマージする

私は1つの配列にマージしている5つのキーがあるときに必要な結果を得ます。

$result = array_merge($records[0], $records[1], $records[2], $records[3], $records[4]); 

しかし、私は2つのキー、または10を持つことがあります。私はこのような静的コードを持つことはできません。

私はもちろんありますどのように多くのキーを取得するために以下のコードを使用することができます:

$count = count($records); 

しかし、それは適切なキーの全てを含むようにどのように私は、マージ配列を構築するためにそれを使用していますか?すなわち:

$result = array_merge($records[0], $records[1], $records[2]); 

:0、1、2

3つのキーがある場合は4がある場合は、偉大なことは、上記と同じコードを生成しますが、存在する場合は3、それはONL行います8つのキーがある場合:

$result = array_merge($records[0], $records[1], $records[2], $records[3], $records[4], $records[5], $records[6], $records[7]); 

この愚かな質問には事前に感謝します。私はそれが簡単であることを知っている!

+0

'$のrecords'の値は何ですか? –

答えて

0
$result = []; 
foreach ($records as $record) { 
    $result = array_merge($result, $record); 
} 
+0

はい、これは期待通りに機能しました。 – user3330299

0
/** 
* Convert a multi-dimensional array into a single-dimensional array. 
* @author Sean Cannon, LitmusBox.com | [email protected] 
* @param array $array The multi-dimensional array. 
* @return array 
*/ 
function array_flatten($array) { 
    if (!is_array($array)) { 
    return false; 
    } 
    $result = array(); 
    foreach ($array as $key => $value) { 
    if (is_array($value)) { 
     $result = array_merge($result, array_flatten($value)); 
    } else { 
     $result[$key] = $value; 
    } 
    } 
    return $result; 
} 

この機能が役立ちます。多次元配列を1次元配列に変換します。


出典:https://gist.github.com/SeanCannon/6585889

関連する問題