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 に答える