2017-04-24 78 views
0

如何才能將「藝術家」值與「標題」值合併爲一個值?如果有幫助,我使用PHP 5.2.4。將兩個數組元素合併爲一個

我有這樣的陣列

Array 
(
    [0] => Array 
     (
      [artist] => Narcosis 
      [title] => Destruir 
      [duration] => 137 
      [date] => 1370807642 
      [genre_id] => 18 
     ) 

    [1] => Array 
     (
      [artist] => Ricardo Palma Fanjul 
      [title] => Mutant 
      [duration] => 347 
      [date] => 1448227909 
      [genre_id] => 18 
     ) 

) 

預期輸出會是這樣,只顯示元素 「標題」 有兩次的值:

Array 
(
    [0] => Array 
     (
      [title] => Narcosis - Destruir 
      [duration] => 137 
      [date] => 1370807642 
      [genre_id] => 18 
     ) 

    [1] => Array 
     (
      [title] => Ricardo Palma Fanjul - Mutant 
      [duration] => 347 
      [date] => 1448227909    
      [genre_id] => 18 
     ) 

) 

回答

1

試試這個:

$new = array_map(function($v) { 
    $v['title'] = $v['artist'].' - '.$v['title']; 
    unset($v['artist']); 
    return $v; 
}, $arr); 

OR

foreach ($arr as &$a) { 
    $a['title'] = $a['artist'].' - '.$a['title']; 
    unset($a['artist']); 
} 
+0

的第二個示例不能按預期工作。 –

+1

我的不好!我已經將它編輯爲'$ arr as&$ a',它工作正常。 –

+0

第一個代碼就是我需要的,謝謝! –

1

試試這個:

foreach ($mainArr as $index=>$subArr) { 
    $subArr['title'] = $subArr['artist'].' - '.$subArr['title']; 
    unset($subArr['artist']); 
    $mainArr[$index] = $subArr; 
} 

mainArr是上面聲明的數組。

p.s.我沒有測試此的代碼,但

+0

更新了答案,我忘了替換現有的數組值wuth更新一個在我前面的回答 –