重写没有第二个临时数组的数组

时间:2013-10-08 13:50:25

标签: php arrays

我有一个这样的数组:

$a = array(
        array(
            'a' => 'x',
            'b' => 'asdasd',
        ),
        array(
            'a' => 'f',
            'b' => '123123qwe',
        ),
);

我希望像这样的阵列:

$a = array(
        'asdasd',
        '123123qwe',
);

我可以通过迭代和填充新数组来改变它, 我想知道我是否可以在没有临时变量的情况下在一行中执行此操作?

更新:使用PHP 5.3,感谢您的5.5建议!

2 个答案:

答案 0 :(得分:7)

如果您使用的是PHP 5.5,则可以使用array_column()

 $new_array = array_column($a, 'b');

<强> See it in action

答案 1 :(得分:3)

老派方法(5.5之前):

<?php
function simplify($el)
{
    return $el['b'];
}
$a = array(
        array(
            'a' => 'x',
            'b' => 'asdasd',
        ),
        array(
            'a' => 'f',
            'b' => '123123qwe',
        ),
);
$a = array_map('simplify',$a);
echo '<pre>'.print_r($a,true).'</pre>';

5.3具有匿名功能的方法:

$a = array_map(function($el){return $el['b'];},$a);
echo '<pre>'.print_r($a,true).'</pre>';