Php 如何在不使用foreach循环的情况下转换数组的all值

Php 如何在不使用foreach循环的情况下转换数组的all值,php,arrays,loops,multidimensional-array,Php,Arrays,Loops,Multidimensional Array,我想在不使用任何循环的情况下转换数组值 我有一个类似这样的数组 Array ( [0] => Array ( [month] => August ) [1] => Array ( [month] => July ) [2] => Array ( [month] => October ) ) 我想把上面的数组转换成下面的格式 Array (

我想在不使用任何循环的情况下转换数组值 我有一个类似这样的数组

Array
  (
[0] => Array
       (
        [month] => August
       )

[1] => Array
    (
        [month] => July
     )

[2] => Array
    (
        [month] => October
    )
)
我想把上面的数组转换成下面的格式

Array
(
    [0] => August
    [1] => July
    [2] => October
)

不使用任何循环

这是我的代码,请更改它。。。。试试这个

 $a = array(0, 4, 5, 7);
// PHP 5.3+ anonmymous function.
$output = array_map(function($val) { return $val+1; }, $a);

print_r($output);
Array
(
    [0] => 1
    [1] => 5
    [2] => 6
    [3] => 8
)
按OP编辑:

function doubleValues($a) {
  return array_map(function($val) { return $val * 2; }, $a);
}

如果您使用的是PHP 5.5或更高版本,则可以使用以下函数:

$new_array = array_column($array, 'month');
在旧版本的PHP中,可以使用
array\u-map

$new_array = array_map(function($x) { return $x['month']; }, $array);

我尝试调用用户函数数组,但它只返回一个值,我想知道为什么要这样做?折叠一个数组来创建多个数组,其中只有一个字符串值,这看起来很愚蠢。你的答案是@MattI,我不理解你的结果。这不是一个单一的变量,它是3个不同的变量。请解释你在问什么-这不清楚。我如何将我的代码更改为这种格式这与问题有什么关系?他没有改变数组中的值。我有一个mysql查询,其中的结果是上面的数组格式,我想将该数组转换为下面的数组格式,并且值是动态的–下面的数组格式不是数组。没什么。它只是在3个不同的数组上调用
print\r
的输出。也许你想要的是
数组(“八月”、“七月”、“十月”)
?是的,它调用print\r的输出我想要数组(“八月”、“七月”、“十月”)?