2017-06-02 100 views
0

我想通过跳过特定值来爆炸数组。Implode阵列跳过特定的数组项目在PHP中

我的阵列是:

$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_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 

任何人都可以帮助我在哪里我在两种方法错了?

回答

1

使用&&而不是||

$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我也加了greater than检查。

此外,由于您在功能中不使用$k,因此您可以跳过它并跳过ARRAY_FILTER_USE_BOTH参数。

+0

谢谢,stranger.It的作品。 – Nidhi

+0

如果你不介意,你能帮我解决这个问题吗?[问题](https://stackoverflow.com/questions/44299271/scroll-and-set-div-on-top-in-modal-body - 当单击上挑选的容器) – Nidhi