2017-07-27 119 views
1

对于构建url查询,我需要将数组的一个值(键)与另一个数组的所有值(值)组合。每个组合的key =>值都需要添加到数组中。结合数组中的一个值到另一个数组的所有值php

这里的问题是我可以在两个foreach语句中组合两个数组的值,但它会为每个实例创建一个新数组。

更新 重复是不可能的,所以我的初始输出是正确的。

$array1 array(

[0] => music

[1] => product

)

$array2 array(

[0] => '));waitfor delay '0:0:TIME'--1

[1] => '[TAB]or[TAB]sleep(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; 

Build query output

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 

) 
+1

在第二个foreach试图做$ newArray [$ key] [] = $ value – Cr1xus

+2

'array_merge'可能值得一看:) – ThisGuyHasTwoThumbs

+0

所以你想使用array1作为key和array2作为值? –

回答

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的索引。

+1

你是对的,这只是一个错误。固定。 – Albert221

+0

是的,解析错误:语法错误,意外的'=>'(T_DOUBLE_ARROW) – melkawakibi

+0

我修复了代码,现在尝试 – Albert221

相关问题