我已经得到了这个数据:
204:7|209:8|210:10|211:11|220:1|225:6|226:5|
我想在每个较大的数字上提取冒号后的数字,我可以得到一个数字,但当得到超过双字符的数字,如11,我必须增加子字符串范围,现在如果我这样做,例如6,它将显示'6|'我如何使它,所以子字符串将得到的数字,无论什么长度的数字?
你的问题是一个很好的例子,说明为什么你不应该使用长度相关的函数与数字相关的内容。
explode
将与您给定的输入完美配合:
$str = "204:7|209:8|210:10|211:11|220:1|225:6|226:5|";
$str_array = explode ('|', $str);
foreach ($str_array as $sub_str) {
echo explode(':', $sub_str)[1]; // EDIT : Ok you wanted the part AFTER ':' I guess, so [1].
}
由@PraveenKumar和@hindmost通知,此语法自PHP 5.5起生效
在以前的版本中,您可以使用:
$str = "204:7|209:8|210:10|211:11|220:1|225:6|226:5|";
$str_array = explode ('|', $str);
foreach ($str_array as $sub_str) {
$tmp = explode(':', $sub_str);
echo $tmp[1];
}
对于substring不应该这样做。您需要使用explode()
:
$data = "204:7|209:8|210:10|211:11|220:1|225:6|226:5|";
$data = explode("|", $data);
上面的代码在第一级拆分,并给出一个包含条目的数组:
204:7
209:8
210:10
下一个,你需要使用:
foreach ($data as $cData)
{
$num = explode(':', $cData);
echo $num[1];
}
只需使用explode
函数将此字符串分解为数组。你的代码应该像这样
<?php
$sting = "204:7|209:8|210:10|211:11|220:1|225:6|226:5|";
$explode = explode ('|', $str);
foreach ($explode as $test) {
echo $test;
}
?>
OR如果您想要:
后面的数字
<?php
$sting = "204:7|209:8|210:10|211:11|220:1|225:6|226:5|";
$explode = explode ('|', $str);
foreach ($explode as $test) {
echo explode(":",$test)[1];
}
?>
希望这对你有帮助