为了构建url查询,我需要将数组的一个值(键)与另一个数组的所有值(值)组合在一起。每个组合密钥=>值需要添加到数组中。
这里的问题是我可以在两个foreach语句中组合两个数组的值,但它会为每个实例创建一个新数组。
更新 重复是不可能的,因此我的初始输出是正确的。
$ array1 array(
[0] =>音乐
[1] =>产品
)
$ array2 array(
[0] => ')); waitfor delay'0:0: TIME ' - 1
[1] => '[TAB]或[TAB]睡眠(的 TIME )='
)
public static function create_combined_array($array1, $array2)
{
$newArray = array();
foreach ($array1 as $key){
//key = [music]
foreach ($array2 as $value) {
//one of the values is = '));waitfor delay '0:0:__TIME__'--1
array_push($newArray, [$key => $value]);
}
}
return $newArray;
}
实施
$query_array = Utils::create_combined_array($params, $payload_lines);
print_r($query_array);
$query = http_build_query($query_array);
$this->url = $baseUrl . '?' . $query;
构建查询输出
protocol:// localhost:8000?music =')); waitfor delay'0:0: TIME ' - 1
示例输出
[54] => Array
(
[music] => ));waitfor delay '0:0:__TIME__'--[LF]1
)
[55] => Array
(
[music] => '));waitfor delay '0:0:__TIME__'--1
)
[56] => Array
(
[music] => '));waitfor delay '0:0:__TIME__'--[LF]1
)
[57] => Array
(
[music] => "));waitfor delay '0:0:__TIME__'--1
)
我想在PHP中实现的目标是不可能的。
示例重复
Array(
[music] => "));waitfor delay '0:0:__TIME__'--1
[music] => '/**/or/**/benchmark(10000000,MD5(1))#1
)
答案 0 :(得分:1)
使用以下代码:
public static function create_combined_array($array1, $array2)
{
$newArray = array();
foreach ($array1 as $key){
foreach ($array2 as $i => $value) {
$newArray[$i][$key] = $value;
}
}
return $newArray;
}
关键是$newArray[$i][$key] = $value;
。它将数组附加到$newArray
$i
索引处,该索引是第二个数组$array2
的索引。