从数组中过滤字符串值以仅格式化数字

时间:2013-01-08 20:35:03

标签: php arrays number-formatting

问题是,我有一个从这个查询得到的数组:

$secimKrm   =   ("SELECT * FROM kurumlar
INNER JOIN veri_2012_09
ON kurumlar.krmKod  =  veri_2012_09.krmKod
WHERE kurumlar.krmKod = '$krmKod'");
$sonucKrm   =   $mysqliKrm->query($secimKrm);
$row    =   $sonucKrm->fetch_assoc();

“kurumlar”由字符串组成 并且“veri_2012_09”由大整数组成。 “veri_2012_09”中有近35列,我不想逐个格式化数字。

当我尝试格式化数组“$ row”中的数字时,我使用它:

foreach ($row as $key => $val) {
$row[$key] = number_format($val, 0, ',', '.');
}

它可以工作,但它会导致错误,(警告:number_format()期望参数1为double,字符串在...... 中给出)因为我的数组中有字符串。如何在格式化数字之前排除字符串?

1 个答案:

答案 0 :(得分:5)

执行is_numeric检查,如:

foreach ($row as $key => $val) {
    if (is_numeric($val)) {
        $row[$key] = number_format($val, 0, ',', '.');
    }
}

所以你的问题不应该是“如何排除字符串”,而是“我怎样才能只包括字符串”