我有以下数组

(
[0] => DHL - 4857998880
[1] => DHL - 4858005666
[2] => COA - 485344322
)

我想遍历数组,如果dhl找到了,我想从数组中删除。DHL前面的号码无关紧要。前面有dhl的任何元素我都想从数组中删除。
我已经创建了下面的正则表达式来忽略前面的数字,但不确定如何从那里向前移动。
foreach($result as $valDHL) {

   $s = preg_replace("/[^a-z-]/i", "", $valDHL);

}

最佳答案

您可以使用array_filter去掉数组中以DHL开头的条目,使用regex^DHL查看条目是否以DHL开头:

$array = array(
0 => 'DHL - 4857998880',
1 => 'DHL - 4858005666',
2 => 'COA - 485344322'
);
$array = array_filter($array, function ($v) { return !preg_match('/^DHL/', $v); });
print_r($array);

输出:
Array (
  [2] => COA - 485344322
)

Demo on 3v4l.org

07-24 20:19