将字符串分解为代码

时间:2014-05-08 16:55:00

标签: php arrays

我有一个格式数组

array(
      [0]=>x_4556v_7889;
      [1]=>y_9908;
      [2]=>f_5643u_7865;
   )

我需要输出

   array(
          [0]=> ([0] =>4556;
                 [1] =>7889;
                )
          [1]=>( [0]=>9908;)
          [2] =>([0] =>5643;
                 [1]=>7865;
                )

     )

如何使用strpos并找出字符串中出现“_”(下划线)并获取for循环中的后四个字符。 我只获得了接下来四位数字的前四位数代码。没有得到一些逻辑。

2 个答案:

答案 0 :(得分:1)

您似乎正在尝试查找所有号码。在这种情况下,请考虑尝试:

$output = array_map(function($item) {
    preg_match_all("/\d+/",$item,$m);
    return $m[0];
},$input);

应该可以正常工作:)

答案 1 :(得分:0)

这是一个免费的正则表达式解决方案..

$arr = array(
    0=>'x_4556v_7889;',
    1=>'y_9908;',
    2=>'f_5643u_7865;'
   );

$lettersarr = range('a','z');
array_unshift($lettersarr,'_');
array_unshift($lettersarr,';');

$new_arr=array_map(function ($v) use($lettersarr) {
    return explode('@',wordwrap(str_replace($lettersarr,'',$v), 4, "@", true)); },$arr);
print_r($new_arr);

Demonstration