3 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊
從評(píng)論中收集到您實(shí)際上只想刪除其中包含單詞remove的所有值,您可以通過使用帶有自定義回調(diào)的array_filter()來完成此操作:
$array1 = ['lion','dear','damdam','lalala','remove2'];
$output = array_filter($array1, function ($value) {
return strpos($value, 'remove') === false;
});
var_dump($output);
輸出:
array(4) {
[0]=>
string(4) "lion"
[1]=>
string(4) "dear"
[2]=>
string(6) "damdam"
[3]=>
string(6) "lalala"
}

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
雖然array_filter()是從數(shù)組中刪除元素的好方法,但它無法處理的一件事是從數(shù)組中刪除 1 項(xiàng)然后停止(盡管您可以使用異常來停止它)。如果有一個(gè)大數(shù)組,其中一個(gè)較早的元素被刪除,array_filter()將始終繼續(xù)掃描整個(gè)數(shù)組。
使用直接foreach()和比較允許您unset()從原始數(shù)組中取出并在完成后立即停止(使用break)...
$array1 = ['lion','dear','damdam','lalala','remove2', 'fred'];
foreach ( $array1 as $key => $value ) {
if ( strpos ( $value, 'remove' ) !== false ) {
unset ( $array1 [ $key ] );
break;
}
}
print_r($array1);

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果不給我們所需的輸出示例,很難嘗試給您一個(gè)結(jié)果,您可能正在尋找的是這樣的 -
function add_or_remove(&$array, $key, $value) {
// remove key/value pairs if they're both identical
if (array_key_exists($key, $array)
&& $array[$key] == $value) {
unset($array[$key]);
// add new key/value pair
// OR modify the value for existing key
} else {
$array[$key] = $value;
}
}
- 3 回答
- 0 關(guān)注
- 150 瀏覽
添加回答
舉報(bào)