将数组中的一个值与另一个数组php

时间:2017-07-27 11:42:59

标签: php arrays foreach

为了构建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

)

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