2013-10-08 57 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