2017-06-02 16 views
0

特定の値をスキップして配列を暗化しようとしています。特定の配列項目をスキップしたImplode配列をPHPで

私の配列である:配列以上から

$unit = array("123","56","0","1","10","965","65","0"," ","63"); 

内破しながら、私は0(ゼロ)とブランク値を望んでいない、私はこの試みた:私はarray_filterのコールバックメソッドを試してみました

$implode1 = implode(",", array_filter($unit)); 

Output : 123,56,1,10,965,65, ,63 (Skipping 0 but not blank value) 

を機能の例以下は

、私は配列を内破しようとした0、1、ブランク値

を望んでいません3210
$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

ありがとう、見知らぬ人。 – Nidhi

+0

あなたは気にしないでこれを整理するために私を助けてもらえますか?[質問](https://stackoverflow.com/questions/44299271/scroll-and-set-dod-on-top-in-modal-bodyクリックしたときに選択されたコンテナ) – Nidhi

関連する問題