在PHP中将两个数组合并为键值对

时间:2021-12-21 12:19:38

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);

3 个解决方案

#1


55  

See array_combine() on PHP.net.

在PHP.net上看到合二为一()。

#2


10  

(from the docs for easy reading)

(来自方便阅读的文档)

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

array_combine -通过使用一个数组作为键,另一个数组作为值来创建数组

Description

描述

array array_combine ( array $keys , array $values )

数组array_combine(数组$keys,数组$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
)

#3


4  

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);
}

#1


55  

See array_combine() on PHP.net.

在PHP.net上看到合二为一()。

#2


10  

(from the docs for easy reading)

(来自方便阅读的文档)

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

array_combine -通过使用一个数组作为键,另一个数组作为值来创建数组

Description

描述

array array_combine ( array $keys , array $values )

数组array_combine(数组$keys,数组$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
)

#3


4  

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);
}