作者chlorine (Chlorine)
看板PHP
标题array转CSV後,0都不见了
时间Thu Feb 5 06:56:47 2015
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://webptt.com/cn.aspx?n=bbs/PHP/M.1423090609.A.198.html
※ 编辑: chlorine (58.189.192.230), 02/05/2015 06:58:18
1F:→ serotw: $tmpl[] = strval($clm); //try 02/11 23:03
2F:→ MOONRAKER: 是strval()还是intval() 02/12 13:47