将PHP变量拆分为数组?

时间:2014-08-07 10:15:09

标签: php arrays

我有这个字符串:

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做到这一点?

3 个答案:

答案 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
)