从数组中删除非整数条目
我有一个像这样的PHP数组:
array( [0] => 1
[1] => 2
[2] => 3
[3] => Some strings
)
如何从数组中删除不是整数的条目?我需要输出这个:
array( [0] => 1
[1] => 2
[2] => 3
)
有人能给我一个线索吗?
我有一个像这样的PHP数组:
array( [0] => 1
[1] => 2
[2] => 3
[3] => Some strings
)
如何从数组中删除不是整数的条目?我需要输出这个:
array( [0] => 1
[1] => 2
[2] => 3
)
有人能给我一个线索吗?
将array_filter
与is_int一
起使用
$filtered = array_filter($array, 'is_int');
如注释中所述,改用以下方法之一可能是更好的解决方案。
$filtered = array_filter($array, 'is_numeric');
$filtered = array_filter($array, 'ctype_digit');
如果使用 来自 的输入,则以下每个方面都有问题。$_POST
$_GET
array_filter($array, 'is_numeric')
也将接受分数值,例如。2.5
array_filter($array, 'is_int');
将拒绝大多数输入,因为发布的值或被视为字符串,即使它们包含有效的 。int
$_GET
$_POST
integers
array_filter($array, 'ctype_digit');
如果输入包含有效,则会拒绝输入,因为它仅匹配表示为字符串的整数。integers
因此,仅过滤有效整数数组的最安全方法是
array_filter($ids, function($e){ return ctype_digit( (string) $e );})