如何在数组中交换键和值?

14

我有一个类似这样的数组:

array(
  0 => 'a',
  1 => 'b',
  2 => 'c'
);
我需要将它转换为:
array(
  'a',
  'b',
  'c'
);

最快的交换键和值的方法是什么?


2
array_flip 可以吗?它确切地做了你所说的,而不是你想要的(因为你想要的并没有实际意义)。 - Michael J.V.
2
使用 array_flip 函数来交换数组中的键和值。 - Jasir
6个回答

31

PHP有array_flip函数,可以交换所有键和对应的值,但在您的情况下不需要使用它,因为这两个数组是相同的。

array(
  'a',
  'b',
  'c'
);

这个数组的键是 0、1 和 2。


4
使用 array_flip() 函数将键和值交换即可。不过,你的数组已经可以正常使用了。也就是说,你并不需要交换它们,否则你的数组将变成:
array(
  'a' => 0,
  'b' => 1,
  'c' => 2
);

不是

array(
  'a',
  'b',
  'c'
);

重新阅读手册,因为它不是你想象的那样。http://www.php.net/manual/zh/function.array-reverse.php - Treffynnon

4
array(
  0 => 'a',
  1 => 'b',
  2 => 'c'
);

并且

array(
  'a',
  'b',
  'c'
);

这两种形式其实是同一数组,第二种形式有0、1、2作为隐式键。如果你的数组没有数值键,可以使用array_values函数获取一个仅包含值(带有数值隐式键)的数组。

否则,如果你需要交换键和值,则array_flip是解决方案,但从你的示例中不清楚你想要做什么。


3

2

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接