array_flip为字母和数字的键值

时间:2013-12-03 19:54:16

标签: php arrays array-flip

我有一个像这样的数组

array(123=>'c', 125=>'b', 139=>'a', 124=>'c', 135=>'c', 159=>'b');

我希望翻转键/值,以便重复的值成为数组的索引。

array(
    'a'=>array(139),
    'b'=>array(125, 159),
    'c'=>array(123, 124, 135)
);

但是,array_flip似乎会覆盖密钥,而array_chunk只会根据数字值对其进行拆分。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我认为你需要手动循环遍历数组。这真的不应该很难......

$flippedArray = array();

foreach( $arrayToFlip as $key => $value ) {

  if ( !array_key_exists( $value, $flippedArray ) {
    $flippedArray[ $value ] = array();
  }
  $flippedArray[ $value ][] = $key;

}

答案 1 :(得分:1)

function array_flop($array) {
    foreach($array as $k => $v) {
        $result[$v][] = $k;
    }
    return array_reverse($result);
}