从数组中过滤字符串值以仅格式化数字
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, ',', '.');
所以你的问题不应该是“我怎样才能排除字符串”,而应该是“我怎样才能只包含字符串”
【讨论】:
以上是关于从数组中过滤字符串值以仅格式化数字的主要内容,如果未能解决你的问题,请参考以下文章