我如何從數組中刪除一個值什麼不完全匹配的字母。從數組中刪除值什麼是不完全匹配
陣列的代碼示例:
$Array = array(
'Funny',
'funnY',
'Games',
);
我怎麼可以不設置此數組中什麼是「有趣」
我通過取消設置嘗試所有的值(「搞笑」);但不從數組取出值,被刪除只是如果我有「搞笑」的數組,但「滑稽」或「搞怪」不工作
我如何從數組中刪除一個值什麼不完全匹配的字母。從數組中刪除值什麼是不完全匹配
陣列的代碼示例:
$Array = array(
'Funny',
'funnY',
'Games',
);
我怎麼可以不設置此數組中什麼是「有趣」
我通過取消設置嘗試所有的值(「搞笑」);但不從數組取出值,被刪除只是如果我有「搞笑」的數組,但「滑稽」或「搞怪」不工作
也許有與array_intersect_key
什麼的一些複雜的解決方案,它可以在一個做到這一點行,但我認爲這種做法更容易閱讀:
function removeCaseInsensitive($array, $toRemove) {
$ret = [];
foreach ($array as $v) {
if (strtolower($v) != strtolower($toRemove))
$ret[] = $v;
}
return $ret;
}
這將返回一個新的數組,不包含任何$toRemove
情況。如果你想保留的按鍵比你可以這樣做:
function removeCaseInsensitive($array, $toRemove) {
$keep = [];
foreach ($array as $k => $v) {
if (strtolower($v) != strtolower($toRemove))
$keep[$k] = true;
}
return array_intersect_keys($array, $keep);
}
您可以過濾掉一個鬆散的過濾規則這些值:
$array = array_filter($array, function($value) {
return strtolower($value) !== 'funny';
});
工作,感謝您對本! –