【问题标题】:if/else is not working in foreach loop in phpif/else 在 php 的 foreach 循环中不起作用
【发布时间】:2019-08-15 20:42:06
【问题描述】:

我是 PHP 新手,我不会在 foreach 循环中使用 if/else 语句遍历所有记录。

$string = "a , b , 1, 2, 3, c, d, e";

$string = explode(' , ', $string);

foreach ($string as $value) {


    if(is_int($value)){

        echo 'Int ' . $value . '<br>';

    }else{


        echo 'Char ' . $value . '<br>';
    }


}

我从上面的代码得到这个结果,

输出

字符
字符 b
字符 1、2、3、c、d、e

我期望以下结果,所以请帮助我弄清楚。谢谢

字符
字符 b
整数 1
整数 2
整数 3
字符 c
字符 d
字符

【问题讨论】:

  • 标题与错误或解决方法无关...
  • 欢迎使用 Stack Virtual Bird。请查看php.net/manual/en/function.is-int.php 了解更多涉及 INT 的信息。就您的代码而言,该字符串似乎不是一个数组,这会使 Explode 认为它只是一个文本字符串,而不是单个项目。

标签: php arrays loops if-statement


【解决方案1】:

你按' , '爆破它,注意逗号前后的空格

你应该这样做:$string = explode(',', $string);

【讨论】:

  • 嗨,我知道你是新来的。如果您认为某个答案解决了问题,请单击绿色复选标记将其标记为“已接受”。这有助于将注意力集中在仍然没有答案的旧 SO。
  • 是的,我检查了。谢谢
【解决方案2】:

如果你有一个字符串并使用explode,每个元素仍然是一个字符串。 表示它是“1”。而 is_int("1") 是假的。 你需要 is_numeric()

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多