如果第一个字符是某个字母(在本例中为字母 D),我试图找到一种方法来取消设置元素...会成功吗?
[0] => Aaron [1] => Bob [2] => Carl [3] => Dale [4] => Devin [5] => Dylan
取消设置所有以字母“D”开头的单词将导致:
[0] => Aaron [1] => Bob [2] => Carl
手动循环已经完成了任务。但作为单线选项:
$array = preg_grep('/^(?!D)/', $array);
$i = 0;
$n = count($array);
while ($i < $n) {
if ($array[$i][0] == 'D')
unset($array[$i]);
++$i;
}
您可以使用array_filter函数:
function filter_firstchar($var){
return $var[0] != 'D';
}
$result = array_filter($arr, 'filter_firstchar');
如果您要过滤的字母发生变化,您可以构建一个非常基本的过滤类:
class Filter_FirstChar {
private $char;
function __construct($char){
$this->char = $char;
}
function filter($var){
return $var[0] != $this->char;
}
}
$result = array_filter($arr, array(new Filter_FirstChar('A'), 'filter'));
foreach($array as $key => $name)
{
if(substr($name,0,1) == "D")
{
unset($array[$key]);
}
}
是一种适合您的方法。