while循环用短划线和数字

时间:2014-01-30 09:52:56

标签: php

我需要在字符串中循环出现一堆数字。我想解析字符串,然后回显出每个数字和段落。

这是字符串:

$string_of_numbers = "-173--37--141--79--274-";

我如何设置一个可以一次查看数字的while循环?

4 个答案:

答案 0 :(得分:2)

您可以尝试:

$string_of_numbers = "-173--37--141--79--274-";
$numbers = explode('--', trim($string_of_numbers, '-'));

foreach ($numbers as $number) {
  echo $number;
}

使用额外的array_walk,您可以将值从字符串转换为整数:

array_walk($numbers, 'intval');

答案 1 :(得分:1)

怎么样

$str = "-173--37--141--79--274-";
preg_match_all('!\d+!', $str, $matches);
print_r($matches);

你可以循环遍历所有数字的$ matches

答案 2 :(得分:0)

试试这个

$string_of_numbers = "-173--37--141--79--274-";
$arr = explode("--", $string_of_numbers);

foreach($arr as $val)
{
  $val = str_replace("-", "", trim($val);
  echo $val; // each number you will get here
}

更新2:

  $string_of_numbers = "-173--37--141--79--274-";
    $str = substr($string_of_numbers, 1, -1);
    $arr = explode("--", $str);

    foreach($arr as $val)
    {
      $val = trim($val);
      echo $val; // each number you will get here
    }

答案 3 :(得分:0)

您可以使用php preg_split()函数通过正则表达式来爆炸字符串,这样您就可以在“ - ”之间获取每个字符串。 Php explode()功能也可以起作用。