从数组中筛选字符串值,以便仅格式化数字


filtering string values from an array for formatting only numbers

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

$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, string given in…)因为我的数组中有字符串。如何在格式化数字之前排除字符串?

执行is_numeric检查,如下:

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

所以你的问题不应该是"我怎么能排除字符串",而是"我怎么能只包括字符串"