如何将简单数组转换为关联数组?

2022-08-30 13:36:27

在 PHP 中将简单数组转换为关联数组的最快方法是什么,以便可以在 ?isset($array[$value])

即执行以下转换的最快方法:

$array = array(1, 2, 3, 4, 5);
$assoc = array();

foreach ($array as $i => $value) {
        $assoc[$value] = 1;
}

答案 1

您的代码完全等效于:

$assoc = array_fill_keys(array(1, 2, 3, 4, 5), 1); // or
$assoc = array_fill_keys(range(1, 5), 1);

array_flip(),虽然它可能适用于您的目的,但它是不一样的。

PHP ref: array_fill_keys()array_flip()


答案 2

array_flip() 正是这样做的:

array_flip() 按翻转顺序返回数组,即来自 trans 的键成为值,来自 trans 的值变为键。

请注意,trans 的值必须是有效的键,即它们必须是整数字符串。如果值的类型错误,则会发出警告,并且有问题的键/值对不会被翻转

如果某个值多次出现,则最新的键将用作其值,所有其他键都将丢失。


但除此之外,PHP中只有一种类型的数组。即使是数字(“简单”,正如你所说的那样)数组也是结合的。