Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:参考提取的数组变量_Php_Arrays_Extract - Fatal编程技术网

PHP:参考提取的数组变量

PHP:参考提取的数组变量,php,arrays,extract,Php,Arrays,Extract,我有一些用数据填充数组的代码,然后需要将这些数据转换为带有查询的URL。数组中的元素数未知 extract($array, EXTR_PREFIX_ALL, "pp_"); 假设我有两个元素,我需要用它们构建一个URL。因此,我: $pp_0 and $pp_1 查询参数需要如下所示: ...&pp={contents of $pp_0}&pp={contents of $pp_1};; 其中,pp=参数的值分别为$pp_0和$pp_1 我已经绞尽脑汁想了好几个小时如何让

我有一些用数据填充数组的代码,然后需要将这些数据转换为带有查询的URL。数组中的元素数未知

extract($array, EXTR_PREFIX_ALL, "pp_");
假设我有两个元素,我需要用它们构建一个URL。因此,我:

$pp_0 and $pp_1
查询参数需要如下所示:

...&pp={contents of $pp_0}&pp={contents of $pp_1};; 
其中,pp=参数的值分别为$pp_0和$pp_1


我已经绞尽脑汁想了好几个小时如何让它工作。

您可以循环数组中的值并构建字符串,也可以使用内爆

内爆法:

$arr =['pp_1' => 1, 'pp_2' => 2, 'pp_3' => 3];

Echo "&pp=" .implode("&pp=", $arr) . ";";

循环方法:

$str ="";
Foreach($arr as $pp){
    $str .= "&pp=" . $pp;
}
$str .= ";";
Echo $str;

输出是相同的,但我认为您可以有更多的循环控制方法。

“内爆”获取所有值并将其内爆,循环使您可以选择在内部添加if,并在加入键或值之前检查它们。

为什么要首先提取它们?为什么不将它们保留在数组中并循环它?为什么必须多次使用相同的键构建URL?这将是一个无效的URL。你是说
pp[]=…&pp[]=…
?或者
pp_1=…&pp_2=…
?然后,您应该使用来避免可能的问题(编码,…),而不是手动创建URL。另请注意,提取的变量是
$pp\uu 0
$pp\uu 1
,带有两个下划线。感谢您的回答。我把事情复杂化了。看起来http_build_查询是我想要使用的,我不知道它存在。