在php中使用跳过特定数组项的内爆数组
我正在尝试使用跳过特定值的方式内爆数组 我的阵列是:在php中使用跳过特定数组项的内爆数组,php,arrays,Php,Arrays,我正在尝试使用跳过特定值的方式内爆数组 我的阵列是: $unit = array("123","56","0","1","10","965","65","0"," ","63"); 从上面的数组中,我不希望内爆时出现0(零)和空白值,我尝试了以下方法: $implode1 = implode(",", array_filter($unit)); Output : 123,56,1,10,965,65, ,63 (Skipping 0 but not blank value) 我尝试了arr
$unit = array("123","56","0","1","10","965","65","0"," ","63");
从上面的数组中,我不希望内爆时出现0(零)和空白值,我尝试了以下方法:
$implode1 = implode(",", array_filter($unit));
Output : 123,56,1,10,965,65, ,63 (Skipping 0 but not blank value)
我尝试了array\u filter
函数的回调方法
在下面的示例中,我尝试内爆数组,不需要0、1和空值
$implode1 = implode(",", array_filter($unit,function($v,$k){
return $v != " " || $v != '1' || $v != '0';
},ARRAY_FILTER_USE_BOTH));
output : 123,56,0,1,10,965,65,0, ,63
谁能告诉我这两种方法哪里不对吗?用
&
代替|
:
$implode1 = implode(",", array_filter($unit,function($v,$k){
return $v != " " && $v != '1' && $v != '0';
},ARRAY_FILTER_USE_BOTH));
但在您的情况下,最好将值转换为int并检查:
$implode1 = implode(",", array_filter($unit,function($v,$k){
return (int)$v > 1;
},ARRAY_FILTER_USE_BOTH));
这里将跳过零和空值(将转换为零)甚至非数值(也将转换为零)。由于您不需要1
太多,我添加了大于
检查
另外,由于您在函数中不使用
$k
,您可以跳过它并使用数组_过滤器_两者
参数。如果您不介意的话,可以帮我解决这个问题吗?