PHP定义函数来翻转数组键和值而不进行分组

时间:2016-06-08 16:05:16

标签: php

在任何版本的PHP中都有任何可以执行此操作的预定义函数:

我有这个数组:

$arr = array(
    2 => 'John',
    21 => 'John',
    32 => 'Joe',
    42 => 'John',
    23 => 'Joe',
    62 => 'John',
    25 => 'Joe',
    );

我期待这个结果:

array(
    'John' => array(2, 21, 42, 62),
    'Joe' => array(32, 23, 25),
);

array_flip 没有做我想做的事。

注意:我可以编写自定义代码来做到这一点,这很简单。我的问题是,如果PHP中有一个函数可以做到吗?

上次更新:我认为答案应为

2 个答案:

答案 0 :(得分:6)

使用foreach循环很简单地解决了这个问题

$flipped = [];
foreach($arr AS $key => $value) {
    $flipped[$value][] = $key;
}

工作示例:https://3v4l.org/aA826

不,这不是一个功能。但这很简单,为什么要让它更复杂?

答案 1 :(得分:4)

您可以使用<h1>Foobar is the title here</h1>执行此操作:

array_reduce