2013-10-08 27 views
2

我有一个这样的阵列:重写阵列而不第二临时阵列

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

我期待像这样的数组:

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

我可以通过迭代和填充一个新的数组变换此, 我不知道我是否可以在没有临时变量的情况下在一行中做到这一点?

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

回答

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>'; 
+1

呸使用'5.3' ...正要张贴太... +1 – bwoebi

+0

我使用这段代码:'array_map(函数($ e){return $ e ['b']; } $ A),真)' – DanFromGermany

+0

@DanFromGermany你是说你已经在使用该方法,并希望到其他选择吗?或者你现在正在使用它? – SmokeyPHP