使用array_filter PHP后出现未定义的偏移量错误

时间:2014-03-08 06:13:10

标签: php explode array-filter

我之前有一个在数组爆炸之后对数组进行计数,这是使用array_filter解决的,但现在当我回显数组中的元素时,它给出了未定义的偏移错误

$exclude=array();
$exclude[0]="with";
$exclude[1]="do";

$search="moving on with my car";
$sch1 = str_replace($exclude,"", trim($search));
$sch2 = explode(" ",trim($sch1));
$sch = array_filter($sch2);
// The value of the count is actually 4

// But when i try to display throws an indefined offset error
echo $sch[0]; 
echo $sch[1]; 
echo $sch[2]; // Throwing an "Undefined offset: 2" Error

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:4)

array_filter()删除数组中等于FALSE的所有条目,从而在数组中创建间隙。

这是$sch2包含的内容:

Array
(
    [0] => moving
    [1] => on
    [2] => 
    [3] => my
    [4] => car
)

当您在array_filter()上应用$sch2时,您将获得一个如下所示的数组:

Array
(
    [0] => moving
    [1] => on
    [3] => my
    [4] => car
)

如您所见,索引2 而非 已定义。您需要以数字方式重新索引数组才能使其正常工作。您可以使用array_values()来实现此目的:

$sch = array_values(array_filter($sch2));

Demo