Jeet Singh
Jeet Singh

Reputation: 402

Populate an associative array with keys defined by an array and values from a static value

Array 1:

Array (
    '127.0.0.1', 
    '235.107.12.3' 
)

Array 2:

Array (
    '34.235.54.6',
    '230.56.78.1'
)

Final Array should like below:

Array (
    [127.0.0.1] => Array (
        '34.235.54.6',
        '230.56.78.1'
    ), 
    [235.107.12.3]' => Array (
        '34.235.54.6',
        '230.56.78.1'
    ) 
)

Please give an advice as to how I can merge these two arrays (array 1 and array 2) to achieve the desired result.

Upvotes: 1

Views: 126

Answers (5)

Nilam Doctor
Nilam Doctor

Reputation: 491

$arrayA = array('127.0.0.1','235.107.12.3' );
$arrayB = array('34.235.54.6','230.56.78.1');
$i = 0;
foreach($arrayA as $a){
   $arrayC[$i] = arrayB;
$i++;
}

Upvotes: -1

Daxen
Daxen

Reputation: 527

Try this one

$a = array_fill_keys($array1, $array2);
Print_r($a);

Output:

Array(
    [127.0.0.1]=>
        array
        (
          '34.235.54.6',
          '230.56.78.1'

        ), 
    [235.107.12.3]'=>
        array
        (
            '34.235.54.6',
            '230.56.78.1'
        ) 
   )

Upvotes: 1

ryanve
ryanve

Reputation: 52601

Use array_fill_keys:

$final = array_fill_keys( $array1, $array2 );

Upvotes: 5

ke20
ke20

Reputation: 665

<?php
    $final = array();
    foreach($array1 as $k => $v)
        $final[$k] = $array2;

    var_dump($final);
?>

Upvotes: 0

nik
nik

Reputation: 3678

you can get your job done using loop, for eg. foreach loop here

foreach($array1 AS $val1)
{
    foreach($array2 AS $val2)
    {
         $newarr[$val1][] = $val2;
    }

}

print_r($newarr);

Upvotes: 0

Related Questions