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

Posted

技术标签:

【中文标题】从数组中过滤字符串值以仅格式化数字【英文标题】:filtering string values from an array for formatting only numbers 【发布时间】:2013-01-08 20:35:03 【问题描述】:

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

$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 为双精度,字符串在...中给出),因为我的数组中有字符串。如何在格式化数字之前排除字符串?

【问题讨论】:

【参考方案1】:

执行is_numeric检查:

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

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

【讨论】:

以上是关于从数组中过滤字符串值以仅格式化数字的主要内容,如果未能解决你的问题,请参考以下文章

angularjs 判断字符串是不是是数字格式

仅使用 Google 的移动视觉 api 检测数字?

AngularJS 过滤器

angularJS - 过滤器

anjularjs 过滤器

AngularJS学习之旅—AngularJS 过滤器