Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组\u筛选器跳过空值或0值_Php - Fatal编程技术网

Php 数组\u筛选器跳过空值或0值

Php 数组\u筛选器跳过空值或0值,php,Php,我想要像这样拆分一个url:$url=“log/getLog/0/categorias/5/”使用此功能: $urlParts = array_filter(explode('/', $url)); 但这一回报: 数组(4){[0]=>string(11)“log”[1]=>string(8)“getLog”[3]=>string(10)“categorias”[4]=>string(1)“5”} 如何查看跳过的0值。如何避免此错误?array\u filter将删除所有具有null、空和0值

我想要像这样拆分一个url:
$url=“log/getLog/0/categorias/5/”使用此功能:

$urlParts = array_filter(explode('/', $url));
但这一回报:

数组(4){[0]=>string(11)“log”[1]=>string(8)“getLog”[3]=>string(10)“categorias”[4]=>string(1)“5”}


如何查看跳过的
0
值。如何避免此错误?

array\u filter
将删除所有具有
null
0
值的元素。 在您的情况下,要处理值
0
,可以使用回调函数,在这里您可以明确指定允许哪些值以及忽略哪些值

我已经创建了一个自定义回调函数,该函数将接受
0
但过滤
null
empty
false

<?php
$url = "log/getLog/0/categorias/5/";

$urlParts = array_filter(explode('/', $url), function($v){
    return $v !== false && !is_null($v) && ($v != '' || $v == '0');
});

print_r($urlParts);

$url = array(
         0 => 'foo',
         1 => false,
         2 => -1,
         3 => null,
         4 => '',
         5 => 0
      );

$urlParts = array_filter($url, function($v){
    return $v !== false && !is_null($v) && ($v != '' || $v == '0');
});

print_r($urlParts);
?>

正在工作

传递一个匿名函数,您只需过滤掉
嗯,请举个例子好吗@Rizier123看一下手册:这里还有一个链接,当您不传递回调时,它默认过滤掉了什么。字符串日志的长度不是11!你可以
$url=rtrim($url,'/')而不是数组过滤器。你会认为
是空的($v)&&“0”!=$v
将更短,以实现相同的结果该值更短,但在“空白”和“0”情况下不起作用。如果您可以创建一个可用的小提琴,将非常有用:)。一切看起来都很好,除了可能有点凌乱:
return$v!==假&!为空($v)&($v!=''| |$v=='0')
可能会被更干净的代码替换:
return!在数组中($v,[false,null,][],true)
Array
(
    [0] => log
    [1] => getLog
    [2] => 0
    [3] => categorias
    [4] => 5
)
Array
(
    [0] => foo
    [2] => -1
    [5] => 0
)