2016-08-19 87 views
-5

我在數組中的值如下。陣列中的數組作爲單個關聯數組

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

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

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

     ) 
) 

我需要將它作爲單個關聯數組,如下所示。

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

我該怎麼做?

+6

這很好。那麼你做了什麼努力來實現這一目標?第一個數組_always_裏面只有一個數組嗎?內部數組中的鍵是否重複過? –

+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, 
    ) 

在這裏,我們已經創建了一個稱爲空數組作爲$final_array我們將通過使用foreach環追加此陣列。

請記住,如果你有一個相同的數組鍵,那麼最後的值將覆蓋如下。

<?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

這一行代碼就足以做到這一點

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

call_user_func_array將調用與參數和array_merge陣列的回調函數將合併在單個陣列中所有這些參數閱讀更多關於call_user_func_array()array_merge()

示例代碼:

<?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); 
?> 

這會給你:

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