[英]php how to remove leading zeros from a CSV?
好的,假設我有一個CSV字符串:01,02,05,10,11,13 ..刪除前導零的最簡單方法是什么?
如果它們都是整數,則將其展開為數組並將其全部轉換為int。
$values = array_map('intval', explode(',', $csv));
您可以將所有數字轉換為整數:
$list = explode(',', $csv_string);
foreach ($list as &$n) $n = (int)$n;
$fixed = implode(',', $list);
請確保在foreach中注意&
,它可讓您修改實際的列表元素。
<?
$tdata=explode(',','01,02,05,10,11,13');
foreach ($tdata as $number) {
$csv[]=number_format($number,0);
}
$csv=implode(',',$csv);
echo $csv;
已測試: http : //www.ideone.com/lrh8q
編輯
查看其他一些文章,將其轉換為int而不是number_format可能更快。
為此使用preg_replace
:
$text = "01,02,05,10,11,13,101";
echo preg_replace('/(?<=,|\b)0([0-9])/', "$1", $text);
編輯:更新了正則表達式以使用中間帶有0
數字。 (即101)
感謝@BoltClock幫助修復正則表達式。
輸出:
1,2,5,10,11,13,101
這樣做的好處是您不必將所有文本變成一個數組,對其進行修改/循環遍歷,然后將其變回文本就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.