Merge two arrays as key value pairs in PHP

2019-01-02 18:33发布

I've got two arrays of the same size. I'd like to merge the two so the values of one are the key indexes of the new array, and the values of the new array are the values of the other.

Right now I'm just looping through the arrays and creating the new array manually, but I have a feeling there is a much more elegant way to go about this. I don't see any array functions for this purpose, but maybe I missed something? Is there a simple way to this along these lines?

$mapped_array = mapkeys($array_with_keys, $array_with_values);

标签: php arrays
3条回答
何处买醉
2楼-- · 2019-01-02 19:02

This should do the trick

function array_merge_keys($ray1, $ray2) {
    $keys = array_merge(array_keys($ray1), array_keys($ray2));
    $vals = array_merge($ray1, $ray2);
    return array_combine($keys, $vals);
}
查看更多
残风、尘缘若梦
3楼-- · 2019-01-02 19:06

See array_combine() on PHP.net.

查看更多
高级女魔头
4楼-- · 2019-01-02 19:07

(from the docs for easy reading)

array_combine — Creates an array by using one array for keys and another for its values

Description

array array_combine ( array $keys , array $values )

Creates an array by using the values from the keys array as keys and the values from the values array as the corresponding values.

Parameters

keys - Array of keys to be used. Illegal values for key will be converted to string.

values - Array of values to be used

Example

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

The above example will output:

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)
查看更多
登录 后发表回答