Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 函数将数组值翻转为数组键?_Php_Arrays - Fatal编程技术网

Php 函数将数组值翻转为数组键?

Php 函数将数组值翻转为数组键?,php,arrays,Php,Arrays,是否有一个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' 不,

是否有一个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' 

不,没有现有的,但您可以根据需要编写您的自定义,请参阅下面的函数确实满足您的需要:

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

Array
(
    [0] => 1
    [1] => 6, 7
    [7] => 8
)
你可以试一下

只需使用
foreach
并将
键的值与
值交换即可

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

@splash58不太好
array\u flip
不会连接具有相同值的键。没有这样的函数,您需要自己编写。祝你好运如果你只是在谷歌上搜索了相同的问题标题,你会看到数组翻转的php手册function@MohamedBelal这不完全是数组翻转。很好的解释和使用
array\u keys()
infrade()
@Rizier123即使是猫也喜欢一个友好的词:)@Rizier123关于数组翻转,你说的是一个函数
$arr = array ( 1 => '0', 6 => '1', 7 => '1', 8 => '7' );
$result = array();
foreach($arr as $key => $value){
    $result[$value][] = $key;
}
print_r($result);