将数组值翻转到数组键的功能?

时间:2015-06-11 14:59:04

标签: php arrays

是否有可以采用以下数组的php函数

Curse

然后将其翻转到下面的数组注意,数组必须具有唯一的键值,因此我们可以翻转数组,其中值1 =键值6,7

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

3 个答案:

答案 0 :(得分:9)

$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
)

答案 1 :(得分:4)

您可以尝试

只需使用var index = -1; function setData() { index = index + 1; //I Need a gradient! } 并将[0, 'rgba(73,115,214,.07)'], [1, 'rgba(41,189,102,.12)'] 的值与foreach

互换
key

FIDDLE

答案 2 :(得分:3)

不,没有现成的,但您可以根据需要编写自己的自定义,请参阅以下功能确切地说明您需要的内容:

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;
}