2012-09-30 40 views
0

我已经能够搜索多维数组一样删除匹配来自主阵列阵列

Array 
(
    [0] => Array 
     (
      [size] => 39 
      [colour] => N/A 
      [quantity] => 5 
     ) 

    [1] => Array 
     (
      [size] => 35 
      [colour] => N/A 
      [quantity] => 5 
     ) 

    [2] => Array 
     (
      [size] => 40 
      [colour] => N/A 
      [quantity] => 5 
     ) 

    [3] => Array 
     (
      [size] => 30 
      [colour] => N/A 
      [quantity] => 5 
     ) 

) 

并使用该片段

$result = array(); 
foreach ($multi_array as $arr) { 
    if ($arr['size'] == $one_dimen_arr['size'] && $arr['colour'] == $one_dimen_arr['colour']) { 
    $result = $arr; 
    break; 
    } 
} 
返回匹配的匹配数组这样

Array 
(
    [size] => 35 
    [colour] => N/A 
    [quantity] => 5 
) 

是否有可能从主多维数组中删除匹配,并用u在那个位置的数组数组?

回答

1

尝试像这样

$result = array(); 
foreach ($multi_array as $key => $arr) { 
    if (
    $arr['size'] == $one_dimen_arr['size'] && 
    $arr['colour'] == $one_dimen_arr['colour'] 
) { 
    $result = $arr; 
    unset($multi_array[$key]) //to remove the matching array 
    $multi_array[$key] = $yourUpdatedArr; //to update the values 
    break; 
    } 
} 
+0

这段代码完美地工作 – MrFoh

0

试试这个,

$result = array(); 
    foreach ($multi_array as $key=>$arr) { 
     if ($arr['size'] == $one_dimen_arr['size'] && $arr['colour'] == $one_dimen_arr['colour']) { 
     $i = $key; 
     $result = $arr; 
     break; 
     } 

    } 
if(isset($i)){$multi_array[$i] = $updatedArray;}