array轉CSV後,0都不見了
Array 的名字是$finalResultPM 因為裡面的元素每次都不一樣
但會比30個少,可是為了寫進mysql,我必須把他補滿30個
mysql的欄位是int,且字元限制4
array2csv這個function是我從github上找的,在補完0後
轉成csv,這些元素都不見了,請問問題在
1> 問題在array_pad的話,那我可能用其他方式來補array,比如說例出個數
如果位數少於30,就不斷補0(可能要用string),直到結束,再把他轉回int
2>問題在array2csv的功能,這可能就自已重寫這一段。
麻煩前輩解答了
$finalResultPM = array_pad($finalResultPM , 30, "0");
print_r ($finalResultPM);
$csvTestPM = array2csv($finalResultPM, ",");
echo $csvTestPM;
function array2csv( $list, $sep=',' )
{
if( !is_array( $list ) ) return false;
foreach( $list as $line )
{
if( !is_array( $line ) ) return false;
unset( $tmpl );
foreach( $line as $clm )
{
if( eregi( '[",n]', $clm ) )
{
$tmp = str_replace( '"', '""', $clm );
$tmpl[] = '"'.$tmp.'"';
}
else {
$tmpl[] = $clm;
}
}
$str .= implode( $sep, $tmpl )."";
}
return $str;
}
// ----------------------輸出結果------------------------
Array ( [0] => Array ( [0] => 2121 [1] => 2158 [2] => 2706 [3] => 2929 [4] =>
3266 [5] => 3328 [6] => 3668 [7] => 3815 [8] => 3823 [9] => 4564 [10] => 4751
[11] => 4777 [12] => 6625 [13] => 6819 [14] => 6840 [15] => 7148 [16] => 7844
[17] => 8462 ) ) 2015-02-04Array ( [0] => Array ( [0] => 2121 [1] => 2158 [2]
=> 2706 [3] => 2929 [4] => 3266 [5] => 3328 [6] => 3668 [7] => 3815 [8] =>
3823 [9] => 4564 [10] => 4751 [11] => 4777 [12] => 6625 [13] => 6819 [14] =>
6840 [15] => 7148 [16] => 7844 [17] => 8462 ) [1] => 0 [2] => 0 [3] => 0 [4]
=> 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => 0 [12] =>
0 [13] => 0 [14] => 0 [15] => 0 [16] => 0 [17] => 0 [18] => 0 [19] => 0 [20]
=> 0 [21] => 0 [22] => 0 [23] => 0 [24] => 0 [25] => 0 [26] => 0 [27] => 0
[28] => 0 [29] => 0 )
,2121,2158,2706,2929,3266,3328,3668,3815,3823,3877,4564,4751,4777,6819,6840,7148,7844,8462
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.189.192.230
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1423090609.A.198.html
※ 編輯: chlorine (58.189.192.230), 02/05/2015 06:58:18
→
02/11 23:03, , 1F
02/11 23:03, 1F
→
02/12 13:47, , 2F
02/12 13:47, 2F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章