我有这个字符串:
ckb=199&ckb=232&ckb=200&ckb=233&ckb=201&ckb=234..
我需要从中创建一个数组:
[0] => 199
[1] => 232
[2] => 200
[3] => 233
[4] => 201
[5] => 234
我怎么能用PHP做到这一点?
答案 0 :(得分:1)
您可以使用parse_str
来解析查询字符串。但是它需要php的数组语法风格(key[]=val
)所以你需要添加方括号:
$str = 'ckb=199&ckb=232&ckb=200&ckb=233&ckb=201&ckb=234';
$str = str_replace('=','[]=',$str);
parse_str($str, $output);
$final = $output['ckb'];
var_dump($final);
答案 1 :(得分:1)
基本思路是在这里使用explode()
:示例:
$string = 'ckb=199&ckb=232&ckb=200&ckb=233&ckb=201&ckb=234';
$pieces = array_map(function($piece){
$sub_piece = explode('=', $piece);
return array_pop($sub_piece);
}, explode('&', $string));
echo '<pre>';
print_r($pieces);
应输出如下内容:
Array
(
[0] => 199
[1] => 232
[2] => 200
[3] => 233
[4] => 201
[5] => 234
)
旁注:从它的外观看起来有点URL。如果您想修改字符串,或者也可以使用parse_str
并将其改为数组。
答案 2 :(得分:1)
正则表达式解决方案:
<?php
$str = "ckb=199&ckb=232&ckb=200&ckb=233&ckb=201&ckb=234";
preg_match_all("/=([^&]+|.*$)/", $str, $matches);
print_r($matches[1]);
?>
输出:
Array
(
[0] => 199
[1] => 232
[2] => 200
[3] => 233
[4] => 201
[5] => 234
)