我之前有一个在数组爆炸之后对数组进行计数,这是使用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
任何帮助将不胜感激。感谢
答案 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));