Php 将字符串分解为代码
我有一个数组的格式Php 将字符串分解为代码,php,arrays,Php,Arrays,我有一个数组的格式 array( [0]=>x_4556v_7889; [1]=>y_9908; [2]=>f_5643u_7865; ) 我需要得到输出作为 array( [0]=> ([0] =>4556; [1] =>7889; ) [1]=>( [0]=>9908;)
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并找出字符串中“uz”(下划线)的出现情况,并在for循环中获取接下来的四个字符。
我只得到前四位代码,下一个四位代码没有。请提供一些逻辑。看起来您正在尝试查找所有数字。在这种情况下,考虑一下这个问题:
$output = array_map(function($item) {
preg_match_all("/\d+/",$item,$m);
return $m[0];
},$input);
应该可以正常工作:)不过这是一个不需要正则表达式的解决方案。。
没有使用preg\u match\u all的任何其他想法。无论如何,感谢您的支持suggest@SSS,为什么不
preg\u match\u all()
?这是正确的做法。Niet+1尝试自己写一些东西,如果不起作用,请具体告诉我们您做了什么,以便我们可以帮助您。你先开始,然后我们来帮忙。我们不是为你写的。向我们展示您尝试过的实际代码,然后描述发生了什么和什么不正确,然后我们可以从那里帮助您。如果你先亲自尝试,你很可能会非常接近答案。
$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);