前言:
目前各位老铁们对“php删除空格”可能比较关注,兄弟们都想要学习一些“php删除空格”的相关内容。那么小编在网摘上收集了一些有关“php删除空格””的相关文章,希望小伙伴们能喜欢,各位老铁们一起来学习一下吧!场景:前后端交互中,经常遇到前端传一组id到后台,后台做相应的处理,比如批量删除一批数据;通常的做法是将前端选中的id,组成一个用逗号分隔的字符串,然后传给后台处理;后台拿到字符串,用 in 查询来删除数据库中的数据;做in查询之前,一般需要处理掉字符串中的空数据,而且要做每个id是否合法的验证(比如id都是数字的情况,要判定字符串中用逗号分隔后的id都是数字)
目标:去掉字符串中的空值,校验每个id是正确的数字
思路:使用 array_filter 函数
实现:使用 array_filter 函数做参数的过滤;
查看php的文档会发现 array_filter 的解释:
array_filter(array , callbackfunction) 函数用回调函数过滤数组中的值。该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。参数:array //必需。规定要过滤的数组。 callbackfunction //必需。规定要使用的回调函数。
这个需求实现就非常简单
$message_ids = '2,3,4,null,,false,true,5';$msg_ids = array_filter(explode(',', $message_ids), function ($var) { return is_numeric($var);});print_r($msg_ids);
输出:
Array ( [0] => 2 [1] => 3 [2] => 4 [7] => 5 )
实际操作中,发现php的官方文档实际上有问题,第二个参数 callbackfunction 实际上并非必须,php会默认补全一个 callbackfunction,执行的业务逻辑等价于
function ($var) { return $var;}
所以,以下代码也是正确的
$message_ids = '2,3,4,null,,false,true,5';$msg_ids = array_filter(explode(',', $message_ids));print_r($msg_ids);
输出:
Array ( [0] => 2 [1] => 3 [2] => 4 [3] => null [5] => false [6] => true [7] => 5 )
有点意思的是 false 被作为字符串处理,而不是作为bool的值;
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #php删除空格