我们说我有
$input = ['1, 2, 3, 4, 5'];
我需要获取数组中存储为字符串的每个数字。是否有任何可能的方法为该字符串中的每个数字使用foreach()
或其他任何内容?换句话说,从字符串中检索数字。
提前谢谢!
答案 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>";
}
}
}
}
这将导致:
1
2
3
4
5
100