使用PHP获取字符串的一部分
我有这个字符串:使用PHP获取字符串的一部分,php,string,Php,String,我有这个字符串: $tree = 'list[0001Red]=null&list[0002Blue]=null&list[0004Sky]=0002Blue&list[0003Green]=null&list[0005Grass]=0003Green'; 例如,我只需要得到开头括号前的前4个字符 $tree = '0001,0002,0004,0003,0005'; 这四个字符是随机生成的,因此它们会发生变化 谢谢你的帮助 我是用这个代码做的 $tree =
$tree = 'list[0001Red]=null&list[0002Blue]=null&list[0004Sky]=0002Blue&list[0003Green]=null&list[0005Grass]=0003Green';
例如,我只需要得到开头括号前的前4个字符
$tree = '0001,0002,0004,0003,0005';
这四个字符是随机生成的,因此它们会发生变化
谢谢你的帮助
我是用这个代码做的
$tree = explode("list[", $tree);
$pieces = count($tree);
for($x=1; $x < $pieces; $x++){
$temp = substr($tree[$x], 0, 4);
if($x==1){
$new_tree = $temp;
}else{
$new_tree = $new_tree . "," . $temp;
}
}
$tree=explode(“列表[”,$tree);
$pieces=计数($tree);
对于($x=1;$x<$pieces;$x++){
$temp=substr($tree[$x],0,4);
如果($x==1){
$new_tree=$temp;
}否则{
$new_tree=$new_tree.“,”$temp;
}
}
但是Andreas的解决方案看起来更好更简单使用regex
$arr = preg_match_all("/\[(\d{4})/", $tree);
$tree = implode(",", $arr[1]);
echo $tree; //0001,0002,0004,0003,0005
您可以分享您尝试过的内容吗?这不是一个代码编写服务。您应该尝试自己编写代码。如果您有问题,您可以发布您尝试过的内容,并明确说明哪些内容不起作用,并提供一个解决方案。我建议您阅读。
使用[
character,然后是一点substr()
magic应该可以做到这一点……你想分享一下这个奇怪的字符串是如何生成的吗?也许修复创建过程会更简单,而不是摆弄无用的结果。Regex是一个不错的工具。如果你是新手,你可以在这种情况下使用它。但另一方面,它会占用更多的资源o如果你真的不需要,就不要使用它。+1表示快1分钟。:)