2016-08-19 14 views
-5

以下のように配列値内に配列があります。配列内の配列を1つの連想配列として返します

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [Floor] => Floor-1 
       ) 

      [1] => Array 
       (
        [Flat] => Flat A2 
       ) 

      [2] => Array 
       (
        [Area] => Balcony, 
       ) 

     ) 
) 

以下のように1つの連想配列として作成する必要があります。

Array 
(
    [0] => Array 
     (
      [Floor] => Floor-1 
      [Flat] => Flat A2 
      [Area] => Balcony, 
     ) 
) 

どうすればいいですか?

+6

いいですね。では、これを達成するために何をしましたか?最初の配列_always_にはその内部に1つの配列しかありませんか?内側の配列でキーが繰り返されていますか? –

+0

将来、配列値内の配列にアクセスできません。出力を必要な値にすると、より簡単にフェッチできます。 – Sahithya

答えて

3

この例は役立ちます。

<?php 


$arr = array(
    array(
     'floor'=>'Floor-1' 
     ), 
    array(
     'Flat'=>'Flat A2' 
     ), 
    array(
     'Area'=>'Balcony,' 
     ), 
    ); 



$final_array = array(); 
foreach ($arr as $arr1) { 

    foreach ($arr1 as $key => $value) { 
     $final_array[$key] = $value; 
    } 

} 


?> 

出力はここ

Array 
    (
     [floor] => Floor-1 
     [Flat] => Flat A2 
     [Area] => Balcony, 
    ) 

になります私たちはforeachループを使用して、この配列を追加します$final_arrayと呼ばれる空の配列を作成しました。

同じ配列キーを使用している場合、最後の値は次のように上書きされます。

<?php 
$arr = array(
    array(
     'floor'=>'Floor-1', 
     'floor'=>'Floor-2', 
     ), 
    array(
     'Flat'=>'Flat A2' 
     ), 
    array(
     'Area'=>'Balcony,' 
     ), 

    array(
     'Area'=>'Balcony2,' 
     ), 
    ); 



$final_array = array(); 
foreach ($arr as $arr1) { 

    foreach ($arr1 as $key => $value) { 
     $final_array[$key] = $value; 
    } 

} 


?> 

さて、出力は

Array 
(
    [floor] => Floor-2 
    [Flat] => Flat A2 
    [Area] => Balcony2, 
) 
+0

ありがとうございます。その完璧に動作します。 :) – Sahithya

2
<?php 

$array = [ 
    [ 
     [ 
      'foo' => 'big' 
     ], 
     [ 
      'bar' => 'fat' 
     ], 
     [ 
      'baz' => 'mamma' 
     ] 
    ] 
]; 

$merged[0] = array_reduce($array[0], function($carry, $item) { 
    return array_merge((array) $carry, $item); 
}); 

var_export($merged); 

出力されます:

array (
    0 => 
    array (
    'foo' => 'big', 
    'bar' => 'fat', 
    'baz' => 'mamma', 
), 
) 
1

この一行のコードがこれを行うのに十分である

<?php 
$dataArr = array(
       array(
        'Floor'=>'Floor-1' 
        ), 
       array(
        'Flat'=>'Flat A2' 
        ), 
       array(
        'Area'=>'Balcony,' 
        ), 
      ); 
$newArr = call_user_func_array('array_merge',$dataArr); 
echo "<pre>"; print_r($newArr); 
?> 

これはあなたを与えるだろう:1つのアレイ内のすべてのこれらのパラメータをマージしますパラメータとarray_mergeの配列を持つコールバック関数を呼び出します

$newArr = call_user_func_array('array_merge',$dataArr); ///where $dataArr is your array.. 

call_user_func_arrayはより

call_user_func_array()程度とarray_merge()例コードを読み取ります:

Array 
(
    [Floor] => Floor-1 
    [Flat] => Flat A2 
    [Area] => Balcony, 
) 
関連する問題