将多维数组合并到单个数组

时间:2016-08-05 05:15:14

标签: php arrays multidimensional-array

我有以下数组结构

array (
  0 => 
  array (
    'ID' => '1',
    'post_title' => 'Hello world!',
  ),
  1 => 
  array (
    'ID' => '79',
    'post_title' => 'ffffffffffff',
  ),
  2 => 
  array (
    'ID' => '1720',
    'post_title' => 'Git primer',
  ),
)

我很乐意把它转换成类似下面的结构。是否有任何PHP功能可以做到这一点?我试图避免重复的foreach循环。

array (
'1' => 'Hello world!',
'79' => 'ffffffffffff',
'1720' => 'Git primer',
)

3 个答案:

答案 0 :(得分:4)

使用array_column()来获取此信息。

Array_column()函数返回您在参数中指定的所有列名。

$array=array (
  0 => 
  array (
    'ID' => '1',
    'post_title' => 'Hello world!',
  ),
  1 => 
  array (
    'ID' => '79',
    'post_title' => 'ffffffffffff',
  ),
  2 => 
  array (
    'ID' => '1720',
    'post_title' => 'Git primer',
  ),
)
$new_array = array_column($array, 'post_title', 'ID');
print_r($new_array);

<强>输出:

Array
(
    [1] => Hello world!
    [79] => ffffffffffff
    [1720] => Git primer
)

答案 1 :(得分:0)

这是:

//你的数组

$test = array (
  0 => 
  array (
    'ID' => '1',
    'post_title' => 'Hello world!',
  ),
  1 => 
  array (
    'ID' => '79',
    'post_title' => 'ffffffffffff',
  ),
  2 => 
  array (
    'ID' => '1720',
    'post_title' => 'Git primer',
  ),
);

//解决方案:

foreach ($test as $t){
    $new_array[$t['ID']] = $t['post_title'];

}
echo "<pre>";
echo print_r($new_array);
die;

答案 2 :(得分:0)

您可以使用以下

完成此操作
array_column($array,'post_title','ID');

输出

Array
(
    [1] => Hello world!
    [79] => ffffffffffff
    [1720] => Git primer
)