2016-06-10 113 views
0

我有一個關聯數組。我想從整個數組項中刪除特定的字符串。這裏是我的陣列結構:從整個關聯數組中刪除特定的字符串

Array 
(
    [50808] => Array 
     (
      [quantity] => 2 
      [name] => asv (test) 
     ) 

    [50809] => Array 
     (
      [quantity] => 2 
      [name] => 37 (test) 
     ) 

    [50810] => Array 
     (
      [quantity] => 3 
      [name] => 38 (test) 
     ) 

) 

輸出,我想:

Array 
(
    [50808] => Array 
     (
      [quantity] => 2 
      [name] => asv 
     ) 

    [50809] => Array 
     (
      [quantity] => 2 
      [name] => 37 
     ) 

    [50810] => Array 
     (
      [quantity] => 3 
      [name] => 38 
     ) 

) 

我知道它的使用環路很簡單,但我想這樣做不循環。

+1

和你到目前爲止試過嗎?張貼也是。 –

回答

1

使用array_map功能

<?php 
$array = Array 
(
    '50808' => Array 
     (
      'quantity' => 2, 
      'name' => 'asv (test)', 
     ), 

    '50809' => Array 
     (
      'quantity' => 2, 
      'name' => '37 (test)' 
     ), 

    '50810' => Array 
     (
      'quantity' => 3, 
      'name' => '38 (test)' 
     ) 

); 

echo '<pre>'; 

$new_array = array_map(function($val){ 
    $val['name'] = trim(str_replace('(test)', '', $val['name'])); 
    return $val; 
}, $array); 

print_r($new_array); 

輸出:

Array 
(
    [50808] => Array 
     (
      [quantity] => 2 
      [name] => asv 
     ) 

    [50809] => Array 
     (
      [quantity] => 2 
      [name] => 37 
     ) 

    [50810] => Array 
     (
      [quantity] => 3 
      [name] => 38 
     ) 

) 

另一種方法可以array_walk功能:

array_walk($array, function(&$val){ 
    $val['name'] = trim(str_replace('(test)', '', $val['name'])); 
}); 

print_r($array); //out put: desired output 
+1

太棒了!爲我工作。 :) –

相關問題