PHP数组结合了问题

I've been struggling for a while trying to put these 2 arrays together and I'm wondering if you please may give me a hand here.

Here is my array1

$array1 = array('Name', 'Code', 'Email');

Here is my array2

$array2 = array(
  'user1', '12345', 'user1@example.com',
  'user2', '12345', 'user2@example.com',
  'user3', '12345', 'user3@example.com',
  'user4', '12345', 'user4@example.com',
  'user5', '12345', 'user5@example.com',
  'user6', '12345', 'user6@example.com'
);

I'm trying to come up with a new array where the indexes are the elements of array1 ('Name', 'code', 'email')... so it can end up as the following:

$array3 = (
  'Name'=>'user1', 'Code'=>'12345', 'Email'=>'user1@example.com'
  'Name'=>'user2', 'Code'=>'12345', 'Email'=>'user2@example.com'
  'Name'=>'user3', 'Code'=>'12345', 'Email'=>'user3@example.com'
  'Name'=>'user4', 'Code'=>'12345', 'Email'=>'user4@example.com'
  'Name'=>'user5', 'Code'=>'12345', 'Email'=>'user5@example.com'
  'Name'=>'user6', 'Code'=>'12345', 'Email'=>'user6@example.com'
); 

The reason of all this is to send it via json to a jquery response to present it to a table.

Would you please help me?

Thanks in advance.

Assuming that you have and array of arrays:

$array1 = array('Name', 'Code', 'Email');

$array2 = array(
    ['user1', '12345', 'user1@example.com'],
    ['user2', '12345', 'user2@example.com'],
    ['user3', '12345', 'user3@example.com'],
    ['user4', '12345', 'user4@example.com'],
    ['user5', '12345', 'user5@example.com'],
    ['user6', '12345', 'user6@example.com']
);

$array3 = [];
foreach($array2 as $a2) {
    $array3[] = array_combine ($array1 , $a2 );
}

var_dump($array3);

That will work. Otherwise, you gonna need a different approach, like this:

$array1 = array('Name', 'Code', 'Email');

$array2 = array(
    'user1', '12345', 'user1@example.com',
    'user2', '12345', 'user2@example.com',
    'user3', '12345', 'user3@example.com',
    'user4', '12345', 'user4@example.com',
    'user5', '12345', 'user5@example.com',
    'user6', '12345', 'user6@example.com'
);

$array3 = [];
$i = 0;
foreach($array2 as $a2) {
    $i++;
    $tempArray[] = $a2;
    if($i % 3 == 0) { //if is the 3rd element, combine then reset tempArray
        $array3[] = array_combine ($array1 , $tempArray );
        $tempArray = [];
    } 
}

var_dump($array3);

You can array_map to loop thru $array2 and use array_combine to assign the $array1 as key on each loop

$array1 = array('Name', 'Code', 'Email');

$array2 = array(
  array('user1', '12345', 'user1@example.com'),
  array('user2', '12345', 'user2@example.com'),
  array('user3', '12345', 'user3@example.com'),
  array('user4', '12345', 'user4@example.com'),
  array('user5', '12345', 'user5@example.com'),
  array('user6', '12345', 'user6@example.com')
);

$results = array_map(function ($n) use($array1) {
    return array_combine($array1, $n);
}, $array2 );

echo "<pre>";
print_r( $results );
echo "</pre>";

This will result to:

Array
(
    [0] => Array
        (
            [Name] => user1
            [Code] => 12345
            [Email] => user1@example.com
        )

    [1] => Array
        (
            [Name] => user2
            [Code] => 12345
            [Email] => user2@example.com
        )

    [2] => Array
        (
            [Name] => user3
            [Code] => 12345
            [Email] => user3@example.com
        )

    [3] => Array
        (
            [Name] => user4
            [Code] => 12345
            [Email] => user4@example.com
        )

    [4] => Array
        (
            [Name] => user5
            [Code] => 12345
            [Email] => user5@example.com
        )

    [5] => Array
        (
            [Name] => user6
            [Code] => 12345
            [Email] => user6@example.com
        )

)

Doc: array_map, array_combine

You can modify the existing $array2:

array_walk($array2, function(&$v, $k, $array) {
                        $v = array_combine($array, $v);
                    }, $array1);

sorry but you cant use the same key twice in the same array!

in this case you can simple use something like this

<?php
$arr = [
  'user1', '12345', 'user1@example.com',
  'user2', '12345', 'user2@example.com',
  'user3', '12345', 'user3@example.com',
  'user4', '12345', 'user4@example.com',
  'user5', '12345', 'user5@example.com',
  'user6', '12345', 'user6@example.com'
];

$arr2 = [];


for ($i=0;$i<sizeof($arr);$i++) {
  if($i % 3 == 0){
    array_push($arr2, ['name' => $arr[$i], 'code' => $arr[$i+1], 'email' =>     $arr[$i+2]]);
  }
}

print_r($arr2);

?>

its gonna result something like this:

 Array
 (
     [0] => Array
    (
        [name] => user1
        [code] => 12345
        [email] => user1@example.com
    )

[1] => Array
    (
        [name] => user2
        [code] => 12345
        [email] => user2@example.com
    )

[2] => Array
    (
        [name] => user3
        [code] => 12345
        [email] => user3@example.com
    )

[3] => Array
    (
        [name] => user4
        [code] => 12345
        [email] => user4@example.com
    )

[4] => Array
    (
        [name] => user5
        [code] => 12345
        [email] => user5@example.com
    )

[5] => Array
    (
        [name] => user6
        [code] => 12345
        [email] => user6@example.com
    )

 )