如何将所有重复参数添加到单个数组中?

时间:2012-10-25 04:53:51

标签: php

我有一个查询,它有一些重复的参数,我如何选择重复的参数并将它们放在一个数组中?

例如:fruit=apple&fruit=banana&fruit=oranges&shopper=tom

2 个答案:

答案 0 :(得分:1)

尝试

$str = "fruit=apple&fruit=banana&fruit=oranges&shopper=tom";
$str = str_replace('fruit', 'fruit[]', $str);
parse_str($str, $output);
print_r($output['fruit']);

答案 1 :(得分:0)

附加两个替代代码示例:(i)通过表单(ii)通过迭代和操作来完成它

<form action="test1234.php" method="GET">
    <input type="checkbox" name="fruit[]" value="apple" />apple<br />
    <input type="checkbox" name="fruit[]" value="banana" />banana<br />
    <input type="checkbox" name="fruit[]" value="orange" />orange<br />
    <br />
    <input type="checkbox" name="buyer[]" value="tom" />tom<br />
    <input type="checkbox" name="buyer[]" value="dick" />dick<br />
    <input type="checkbox" name="buyer[]" value="harry" />harry<br />
    <br />
    <input type="submit" />
</form>
<br />

<?php

var_dump($_GET); // (i) doing it via form

echo '<br /><br /><hr />';

$str = 'fruit=apple&fruit=banana&fruit=oranges&shopper=tom';

$key_value_pair_arr = explode('&', $str);

$result = array();

for($i=0; $i<count($key_value_pair_arr); $i++){

    $key_value = explode('=', $key_value_pair_arr[$i]);

    $key = $key_value[0];
    $value = $key_value[1];

    $result[$key][] = $value;
}

var_dump($result); // (ii) doing it via iteration and manipulation
?>