如何从逗号分隔的数字列表中删除某个数字

时间:2014-12-01 11:47:14

标签: php

我有这个以逗号分隔的列表0,0,0,0,5,0,7,8,9,10,我想摆脱数字零表示为一个数字本身而不是10中的零。

列表在变量$str中表示,这是我试图删除零的代码。

$str;

$myArray = explode(',', $str);

if (($key = array_search('0', $myArray)) !== false) {
    unset($myArray[$key]);
}
print_r($myArray);
$csv = implode(', ', $myArray);
echo $csv;

但是这会给0, 0, 0, 5, 0, 7, 8, 9, 10

这段代码没有按照我的意愿完成工作。我该怎样做才能摆脱零点?。

2 个答案:

答案 0 :(得分:6)

array_filter来救援:

$myArray = explode(',', '0,0,0,0,5,0,7,8,9,10');
print_r(array_filter($myArray, function($el) { return $el; }));
// ⇒ 
/*
Array
(
    [4] => 5
    [6] => 7
    [7] => 8
    [8] => 9
    [9] => 10
)
*/

答案 1 :(得分:-1)

使用str_replace函数 - 效果很好,与您的代码没什么不同,因此您只需添加str_replace函数就不会进行更改:

$myArray = explode(',', str_replace(array(' 0,',',0'), '',$str) );

if (($key = array_search('0', $myArray)) !== false) {
   unset($myArray[$key]);
}
print_r($myArray);
$csv = implode(', ', $myArray);
echo $csv;