0

我有一个这样的数组

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 仅根据数值对其进行拆分。

有什么建议么?

4

2 回答 2

2

我认为这将需要您手动循环遍历数组。不过确实应该不难...

$flippedArray = array();

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

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

}
于 2013-12-03T19:58:42.483 回答
1
function array_flop($array) {
    foreach($array as $k => $v) {
        $result[$v][] = $k;
    }
    return array_reverse($result);
}
于 2013-12-03T20:02:23.350 回答