我有一个像这样的数组
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只会根据数字值对其进行拆分。
有什么建议吗?
答案 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);
}