我有这个以逗号分隔的列表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
这段代码没有按照我的意愿完成工作。我该怎样做才能摆脱零点?。
答案 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;