为了账号安全,请及时绑定邮箱和手机立即绑定

php数组的值转换类型后有问题

php数组的值转换类型后有问题

PHP
翻阅古今 2018-08-04 18:10:38
请帮看下代码$Dss=array(0,0,0,0,0,0,0,0,0,0);for ($i=1;$i<=12;$i++){ //这个循环是为了取指定的12条数据    //$sql="从数据库取值";    $row['DSS'] = '1,2,3,4,5,6,7,8,9,10|11,12,13,14,15,16,17,18,19,20'; //取到的值(只有两条数据有值)    $Dsx=explode("|",$row['DSS']); //以|分割为数组    foreach ($Dsx as $Ds=>$v){ //遍历        if (strpos($v,",")){ //取到值才进行操作            $ns=array_pad(explode(",",$v),15,0); //预防值不够15位            for($c=0;$c<15;$c++){                //$Dss[$c]=floatval($Dss[$c]); //不转换为原值,一转换就为0 ???                //$ns[$c]=floatval($ns[$c]); //不转换为原值,一转换就为0 ???                $Dss[$c].=$ns[$c]; //拼接正常,不能用+= 否则为0 ???            }        }    }}var_dump($Dss[0]);如果照上面的代码运行下来是 string(9) "0111" 值都是正常的。但不能进行类型转换,一转换就为0,而我想要的结果是12.求解
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

先赋值再转换

查看完整回答
反对 回复 2018-08-08
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

终于找到原因了,从数据库取出来的值含有控制字符,在处理前进行替换
$row['DSS']=preg_replace( '/[\x00-\x1F]/','',$row['DSS']);

现在结果完成正确了


查看完整回答
反对 回复 2018-08-08
  • 2 回答
  • 0 关注
  • 1039 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信