我必须使用嵌套数组发送此数组
$tags=[];
foreach ($importedTags->tags as $key => $value) {
$tags[]=array(
"name"=>$value->getName(),
"id"=>$value->getId(),
);
}
数组(如果有3个importedTags)可能如下所示:
array(3) {
[0]=> array(2) { ["name"]=> string(14) "foo" ["id"]=> string(7) "3375095" }
[1]=> array(2) { ["name"]=> string(12) "bar" ["id"]=> string(7) "3378925" }
[2]=> array(2) { ["name"]=> string(8) "foobar" ["id"]=> string(7) "3405555" }
}
作为网址上的GET查询参数
我试过
$params=array(
"pageId"=>$pageId,
"tags"=>urlencode(implode(",", $tags))
);
return $this->redirect($this->generateUrl('my_route.create_sth',$params));
但是当我解析它时
$tags=urldecode($request->query->get('tags'));
$tags=explode(",",$tags);
它返回
array(3) {
[0]=> string(5) "Array"
[1]=> string(5) "Array"
[2]=> string(5) "Array"
}
我知道为什么会这样,这是有道理的
但我是一个php新手,所以我怎么能解决这个问题并得到一个字符串表示,就像我试图用内爆和爆炸来获得带有这种嵌套数组的数组?
答案 0 :(得分:2)
将params的生成更改为:
$params=[];
foreach ($importedTags->tags as $key => $value)
{
$params[]=$value->getName() .'|'. $value->getId();
}
$this->redirect($this->generateUrl('my_route.create_sth',$params));
在另一个网站上:
$tags=[];
foreach ($params as $param)
{
$paramArray = split('|', $param);
$tags[$paramArray[0]]=$paramArray[1];
}
你有嵌套数组。
祝你好运