有幾種方法可以做到這一點。您可以在外部陣列上循環並在內部陣列上使用array_filter以刪除值爲23
(IMO首選;這也使用$dontWant
數字的數組,因此以後更容易添加或更改數字):
<?php
$array = array(array(1=>11,2=>22,3=>23,4=>44,5=>55));
$insert = array();
//array of numbers you don't want
$dontWant = array(23);
//loop over outer array
foreach($array as $subArray){
//add to $insert a filtered array
//subArray is filtered to remove where value is in $dontWant
$insert[] = array_filter($subArray, function($val) uses ($dontWant) {
//returns true if the value is not in the array of numbers we dont want
return !in_array($val, $dontWant);
});
}
//display final array
echo '<pre>'.print_r($insert,1).'</pre>';
或者,你可以參考第一鍵添加到子陣列中$insert
喜歡(這更像是你的代碼試圖做的,表明你是不是太離譜了一點):
<?php
$array = array(array(1=>11,2=>22,3=>23,4=>44,5=>55));
$insert = array();
//loop over outer array
foreach($array as $k1=>$v1){
//add an empty array to $insert
$insert[$k1] = array();
//loop over inner array
foreach($v1 as $k2=>$v2){
//if the inner array value is not 23
if($v2 != 23){
//add to inner array in insert
$insert[$k1][] = $v2;
}
}
}
//display the result
echo '<pre>'.print_r($insert,1).'</pre>';
這兩種方法都會產生相同的結果。使用array_filter的IMO是首選的方法,但對於新編程的人來說,第二種方法可能會更容易理解。
'continue'應該工作 –
你沒有做任何事情在你的內循環,所以打破了它不會改變任何東西無論是。從它看起來,你根本不需要內部循環。 – jeroen