$string = "Title[]=Trekking&Title[]=Climbing&Title[]=Expeditions";
parse_str($string, $output);
print_r ($output);
打印的数组是意外的:
Array (
[Title] => Array (
[0] => Trekking [1] => Climbing [2] => Expeditions
)
)
我不确定发生了什么。这是我想要的输出:
Array (
['Title'] => "Trekking",
['Title'] => "Climbing",
['Title'] => "Expeditions"
)
稍后,我要使用以下命令打印数组:
for ($i=0; $i<count($output); $i++){
echo $output['Title'][$i]."<br />";
}
答案 0 :(得分:1)
parse_str
正常工作。您的预期输出是不可能的;数组仅允许唯一键。如果要打印标题而不修改数组,则只需将count($output)
更改为count($output['Title'])
;它将遍历$output['Title']
数组中的所有标题并进行打印。您只会看到原始循环中的第一项,因为count($output)
是1而不是3。
但是,如果您要查找一个数组数组,则每个数组都有自己的'Title'
键,如您期望的输出块中所示,例如$output[$i]['Title']
,您可以执行以下操作:
$string = "Title[]=Trekking&Title[]=Climbing&Title[]=Expeditions";
parse_str($string, $output);
$output = array_map(function ($e) {
return ["Title" => $e];
}, $output["Title"]);
print_r ($output);
输出:
Array
(
[0] => Array
(
[Title] => Trekking
)
[1] => Array
(
[Title] => Climbing
)
[2] => Array
(
[Title] => Expeditions
)
)