2017-07-27 170 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

相關問題