2017-08-28 47 views
0

我想將數組轉換爲單個數組。 這是因爲下面的我的數組代碼: -將2維數組轉換爲單個數組

Array 
    (
     [0] => Array 
      (
       [label] => 
       [value] => 
      ) 

     [1] => Array 
      (
       [value] => 4 
       [label] => 0.5 
      ) 

     [2] => Array 
      (
       [value] => 5 
       [label] => 0.6 
      ) 

    ) 

希望下面的結果: -

Array(
      '4' => '0.5', 
      '5' => '0.6', 
    ); 
+0

嘗試這種情況: $ single_array =陣列(); foreach($ array as $ keys => $ values){single_array [$ values ['label']] = $ values ['value']; } –

+1

'$ result = array_column($ originalArray,'label','value');' –

+0

@Nirbhav Gupta:謝謝你的回答對我有用,謝謝,請在回答中加上這個我會投票支持這個 –

回答

0

試試這個:

$array = array(
    array('value' => '', 'label' => ''), 
    array('value' => 4, 'label' => 0.5), 
    array('value' => 5, 'label' => 0.6) 
); 

$new_array = array(); 
foreach($array as $item_array){ 
    if(!empty($item_array['value'])){ 
     $new_array[$item_array['value']] = $item_array['label']; 
    } 
} 

print_r($new_array); 
1

試試這個:

$single_array = array(); 

foreach($array as $keys => $values){ 
    $single_array[$values['label']] = $values['value']; 
} 

使用可以根據需要使用不空或空的過濾器。

+0

你救我謝謝 –

0

可以利用以下功能:

array_column() - 輸入數組

array_combine()在從一個單一的列返回值 - 通過使用鍵一個陣列,另一個用於其值

創建一個數組

array_filter() - 使用回調函數過濾數組的元素,如果未提供回調,則將刪除數組的所有條目等於FALSE(see converting to boolean)。

腳本

[email protected]:/tmp$ cat test.php 
<?php 


$array = array(
    array('value' => '', 'label' => ''), 
    array('value' => 4, 'label' => 0.5), 
    array('value' => 5, 'label' => 0.6) 
); 

/* make use of array_column and array_combine */ 
print_r(array_combine(array_column($array, 'value'), array_column($array, 'label'))); 

/* to remove empty elements use array_filter */ 
print_r(array_filter(array_combine(array_column($array, 'value'), array_column($array, 'label')))); 

?> 

輸出

[email protected]:/tmp$ php test.php 
Array 
(
    [] => 
    [4] => 0.5 
    [5] => 0.6 
) 
Array 
(
    [4] => 0.5 
    [5] => 0.6 
)