gpt4 book ai didi

PHP is_numeric 不适用于数组值

转载 作者:行者123 更新时间:2023-12-04 05:31:52 27 4
gpt4 key购买 nike

我试图跳过 CSV 文件中的前几行。在其余行中,第一列是序数 - 1、2、3 等。但由于某种原因,使用 is_numeric 完全失败。我认为这可能是引号,但手册中的测试数组有引号,它正确打印了答案。

打开并检查 $afile 后...

    while (($row = fgetcsv($afile)) !== FALSE) {
// first three rows don't have numbers in first column
if (is_numeric($row[0]))
print "<tr><td>{$row[7]}</td></tr>";
else
print "not numeric: {$row[0]}<br/>";
}

一切都显示为“非数字”!

当我打印_r 数组时,列中仍然有引号,所以我尝试运行 str_replace 来去除引号,而 is_numeric 仍然始终显示为 false ...

完全困惑,希望有人能提供帮助,我希望这只是一个愚蠢的“午夜编码”问题......

[编辑]

好吧,因为我怀疑这与数据有关,但我看不出有什么问题。当我在 BBEdit 中“显示隐形”时,每个字符之间都有一个倒置的问号。见:

Image

所以..这很奇怪。假设我会一直得到这些不可见的东西,直到我能找出导出的数据.. PHP 可以做任何事情来清理数据吗?也许是字符集问题?

[再次编辑] 感谢 martinstoeckli,我用 mb_convert_string 转换了数据,is_numeric 现在可以正确返回。

最佳答案

is_numeric 的一个非常简单的替代方法是检查您是否正在检查 int 是:

if ($row[0] == (string)(int)($row[0]))

或者,如果您担心尾随空格的可能性,请检查 strlen($row[0]) == strlen((int)$row[0])

关于PHP is_numeric 不适用于数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12472111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com