2016-04-06 95 views
-3

我有一個數組格式。PHP Array可讀

Array 
(
    [0] => Array 
     (
      [order_id] => 1 
     ) 

    [1] => Array 
     (
      [order_id] => 11 
     ) 

    [2] => Array 
     (
      [order_id] => 12 
     ) 

) 

它不應該被改變的陣列格式是這樣的格式:

[1,11,12]; 

請幫助。先進的謝謝你。

+2

藤請你分享你試試? – Drone

+1

'array_column()'會有幫助。 –

+1

這看起來更像是代碼而不是問題的請求。 – apokryfos

回答

3

對於(PHP 5> = 5.5.0,PHP 7),可以使用比array_column和下可以使用array_map功能(PHP < 5.3)需要定義saperate功能array_map代替匿名功能。

$array = array 
(
    '0' => array 
    (
     'order_id' => 1 
    ), 

    '1' => array 
    (
     'order_id' => 11 
    ), 

    '2' => array 
    (
     'order_id' => 12 
    ) 

); 

$new_array = array_column($array, 'order_id'); 
print_r($new_array); 


$new_array = array_map(function($element) { 
    return $element['order_id']; 
}, $array); 
print_r($new_array); 

輸出

Array 
(
    [0] => 1 
    [1] => 11 
    [2] => 12 
) 
+1

謝謝!它成功使用。 – cocksparrer

0

這個怎麼樣?

$arr = Array 
(
    0 => Array 
     (
      'order_id' => 1 
     ), 

    1 => Array 
     (
      'order_id'=> 11 
     ), 

    2 => Array 
     (
      'order_id' => 12 
     ), 

); 
$newArr = array(); 

foreach($arr as $x){ 
    foreach($x as $y){ 
     $newArr[] = $y; 
    } 
} 
0

你可以試試這個:

$ar = array(array('order_id' => 1), array('order_id' => 11), array('order_id' => 12)); 

$temp = array(); 

foreach ($ar as $val) { 
    $temp[] = $val['order_id']; 
} 

print_r($temp); 
0

基本上,你正在尋找扁平化的陣列。 This SO answer有一些關於如何做到這一點的提示。此外,還有this Github gist的高爾夫版本。

對於你的問題的具體情況,這應該做

function specificFlatten($arr) { 
    if (!is_array($arr)) return false; 

    $result = []; 

    foreach ($arr as $arr_1) { 
     result[] = $arr_1['order_id']; 
    } 

    return $result; 
}