2017-08-28 69 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 
)