根据第一个字符取消设置数组元素

时间:2011-06-02 18:22:49

标签: php arrays unset

我试图找到一种方法来取消一个元素,如果第一个字符是某个字母,在这种情况下是字母D ...我不确定是否有一个数组函数来做某种事情或者如果preg替换会成功吗?

[0] => Aaron [1] => Bob [2] => Carl [3] => Dale [4] => Devin [5] => Dylan

取消设置以字母“D”开头的所有单词将导致:

[0] => Aaron [1] => Bob [2] => Carl

4 个答案:

答案 0 :(得分:3)

手动循环已完成任务。但作为单线选项:

 $array = preg_grep('/^(?!D)/', $array);

答案 1 :(得分:1)

$i = 0;
$n = count($array);
while ($i < $n) {
  if ($array[$i][0] == 'D')
    unset($array[$i]);
  ++$i;
}

答案 2 :(得分:1)

您可以使用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'));

答案 3 :(得分:1)

foreach($array as $key => $name)
{
    if(substr($name,0,1) == "D")
    {
        unset($array[$key]);
    }
}

一种方法可以很好地适合你。