2015-02-09 54 views
0

我有一個這樣的數組。如何在PHP中使用數組函數合併內部數組元素?

array (size=4) 
0 => 
array (size=1) 
    'serial_id' => string '214' (length=3) 
1 => 
array (size=1) 
    'serial_id' => string '218' (length=3) 
2 => 
array (size=1) 
    'serial_id' => string '221' (length=3) 
3 => 
array (size=1) 
    'serial_id' => string '319' (length=3) 

,我想這是一個數組

array (size=4) 
'0' => string '214' (length=3) 
'1' => string '218' (length=3) 
'2' => string '221' (length=3) 
'3' => string '319' (length=3) 

我不想跑環,沒有任何陣列功能,這給我需要的輸出

任何人都可以幫我嗎? ?? 我是新的陣列函數的PHP。 感謝所有的答案,但使用陣列功能等待簡短的回答.. 這是我在PHP代碼

<?php 
    $array = array(array('serial_id' => 214), 
     array('serial_id' => 218), 
     array('serial_id' => 221), 
     array('serial_id' => 319)); 
    var_dump($array); 

    $array2 = array(218,214,221,319); 
    var_dump($array2); 
    ?> 
+0

遍歷數組和重建呢?聽起來容易。顯示你的PHP代碼。 – Raptor 2015-02-09 06:41:20

+1

供參考:你不能有重複的鍵,使用'foreach'或'array_column'就可以正常工作。 – Ghost 2015-02-09 06:41:33

+0

它可能是錯誤的..關鍵是一樣的..不,如果鍵是相同的,那麼它會被最後一個值覆蓋.. – 2015-02-09 06:43:55

回答

1

您可以嘗試次是代碼,我看到你更新你的問題

 <?php 
    function convert_array($a) { 
     for($j = 0; $j < count($a); $j++) { 
      $b[$j] = $a[$j]['serial_id']; 
     } 
    return $b; 
    } 

    $array = array(array('serial_id' => 214), 
     array('serial_id' => 218), 
     array('serial_id' => 221), 
     array('serial_id' => 319)); 

    $array2 = convert_array($array); 

     var_dump($array2); 

     ?> 

如果您使用PHP> 5.5.0

<?php 

    $array = array(array('serial_id' => 214), 
     array('serial_id' => 218), 
     array('serial_id' => 221), 
     array('serial_id' => 319)); 

$array2 = array_column($array, 'serial_id'); 

    var_dump($array2); 

    ?> 
+0

解決了你的問題? – 2015-02-12 03:53:46

+0

尚未...正在等待具有相同功能的陣列功能。 – Akilsree1 2015-02-15 04:50:47

+0

我更新了代碼,你現在可以試試 – 2015-02-15 05:04:37

2

嘗試this..this是你的老array..try it..consider它作爲安排例如..

$array = array(0 => array("serial_id"=>"214"), 
       1 => array("serial_id"=>"218"), 
       2 => array("serial_id"=>"221"), 
       3 => array("serial_id"=>"319") 
      ); 

可以使用的foreach在一個新的數組 $ new_array =數組以得到內部元件(); 的foreach($數組作爲$鍵=> $ inner_array){

foreach($inner_array as $k=>$v){ 
    $new_array[$k] = $v; 
    } 
} 



    Output will be 
$new_array = array(
    'serial_id_1' => string '214', 
    'serial_id_2' => string '218', 
    'serial_id_3' => string '221', 
    'serial_id_4' => string '319', 
); 
1

遍歷如下面的例子,產生新的數組的數組:

$array = array("0" => array("serial_id"=>"214"), 
       "1" => array("serial_id"=>"218"), 
       "2" => array("serial_id"=>"221"), 
       "3" => array("serial_id"=>"319") 
      ); 
$new_arr=array();    
foreach($array as $key => $value){ 
$new_arr["serial_id_".$key]=$value["serial_id"]; 
} 

print_r($new_arr); 

嘗試一下這裏http://sandbox.onlinephpfunctions.com/code/2291c9eaf9842fdbeda4fd69bc707d7404b390d0

環通新陣列

foreach($new_arr as $key => $value){ 
    echo $key."\t=>\t".$value."\n"; 
}