首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >php数组编号比较

php数组编号比较
EN

Stack Overflow用户
提问于 2018-06-07 06:59:18
回答 3查看 44关注 0票数 -1

比方说我有

代码语言:javascript
复制
$input = ['1, 2, 3, 4, 5']; 

我需要获取数组中存储为字符串的每个数字。有没有可能对该字符串中的每个数字使用foreach()或其他方法?换句话说,从字符串中检索数字。提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2018-06-07 07:03:04

使用explode()将字符串拆分为数字。

代码语言:javascript
复制
foreach ($input as $numberstring) {
    $numbers = explode(', ', $numberstring);
    foreach ($numbers as $number) {
        ...
    }
}
票数 0
EN

Stack Overflow用户

发布于 2018-06-07 07:48:10

我已经更改了输入数组,因为引号在问题的元数组中没有意义,如果这是错误的,请告诉我。

代码语言:javascript
复制
$input = [1, 2, 3, '4', 5];


foreach($input as $i){

    if(is_string($i)){//test if its a string
        $strings[]=$i; //put stings in array (you could do what you like here
    }

}
print_r($strings); 

输出:

代码语言:javascript
复制
Array
(
    [0] => 4
)

您的输入是包含一个逗号分隔数字字符串的单个数组元素

代码语言:javascript
复制
$input = ['1, 2, 3, 4, 5'];
票数 0
EN

Stack Overflow用户

发布于 2018-06-07 14:08:02

对于示例数据,您可以循环数组,并使用is_string检查数组中的项是否是字符串。在您的示例中,数字之间用逗号分隔,因此您可以使用explode并使用逗号作为分隔符。

然后,您可以使用is_numeric检查explode中的值。

代码语言:javascript
复制
$input = ['1, 2, 3, 4, 5', 'test', 3, '100, a, test'];
foreach ($input as $item) {
    if (is_string($item)) {
        foreach (explode(',', $item) as $i) {
            if (is_numeric($i)) {
                echo trim($i) . "<br>";
            }
        }
    }
}

Demo

这将导致:

代码语言:javascript
复制
1
2
3
4
5
100
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50730772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档