Функция для переключения значений массива на клавиши массива?

Есть ли функция php, которая может принимать нижний массив

array (size=4) 1 => string '0' 6 => string '1' 7 => string '1' 8 => string '7' 

И переверните его в нижний массив, заметив, что массив должен иметь уникальные значения ключей, поэтому мы можем перевернуть массив, где значение 1 = значения ключа 6, 7

 array (size=3) 0 => string '1' 1 => string '6, 7' 7 => string '8' 

 $arr = array ( 1 => '0', 6 => '1', 7 => '1', 8 => '7' ); // Find unique values of array and make them as keys $res = array_flip($arr); // Find keys from sourse array with value of key in new array foreach($res as $k =>$v) $res[$k] = implode(", ", array_keys($arr, $k)); 

результат

 Array ( [0] => 1 [1] => 6, 7 [7] => 8 ) 

Вы можете попробовать это как

Просто используйте foreach и измените значения key со values

 $arr = array ( 1 => '0', 6 => '1', 7 => '1', 8 => '7' ); $result = array(); foreach($arr as $key => $value){ $result[$value][] = $key; } print_r($result); 

FIDDLE

Нет, нет существующего, но вы можете написать свой обычай в соответствии с потребностями, см. Ниже функция делает то, что вам нужно:

 function customFlip($arr){ $newArray = array(); if (is_array($arr)) { foreach ($arr as $key => $value) { if (array_key_exists($value, $newArray)) { if (empty($newArray[$value])) { $newArray[$value] = $key; } else { $newArray[$value] .= ','.$key; } } else { $newArray[$value] = $key; } } return $newArray; } return false; }