php数组对比

时间:2018-06-06 22:59:18

标签: php arrays numbers

我们说我有

$input = ['1, 2, 3, 4, 5']; 

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

3 个答案:

答案 0 :(得分:0)

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

foreach ($input as $numberstring) {
    $numbers = explode(', ', $numberstring);
    foreach ($numbers as $number) {
        ...
    }
}

答案 1 :(得分:0)

我已经更改了输入数组,因为引用对问题没有意义,请告诉我这是不是错了。

$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); 

输出:

Array
(
    [0] => 4
)

您的输入是一个数组元素,其中包含一个逗号分隔数字

$input = ['1, 2, 3, 4, 5'];

答案 2 :(得分:0)

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

然后你可以使用is_numeric来检查爆炸的值。

$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

这将导致:

1
2
3
4
5
100