Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.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/php/283.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,我正在尝试使用array\u flip以逗号分隔的格式打印重复的值 $a=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"blue"); $flip=array_flip($a); print_r($flip); 我的输出是: Array ( [red] => a [green] => b [blue] => d ) Array ( [red] => a [green] => b [blue

我正在尝试使用
array\u flip
以逗号分隔的格式打印重复的值

$a=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"blue");
$flip=array_flip($a);
print_r($flip);
我的输出是:

Array ( [red] => a [green] => b [blue] => d )
Array ( [red] => a [green] => b [blue] => c,d)
但我的预期产出是:

Array ( [red] => a [green] => b [blue] => d )
Array ( [red] => a [green] => b [blue] => c,d)

如何获得该输出?

array\u flip
将不会提供预期的输出。您可以编写自定义函数,如:

$a=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"blue");
$flip = array_flip_custom($a);

print_r($flip);
function array_flip_custom($a){
    $flip = array();
    foreach($a as $index=>$key){
        if($flip[$key]){
            $flip[$key] .= ','.$index;
        } else {
            $flip[$key] = $index;
        }
    }
    return $flip;
}
将给出输出:

阵列([红色]=>a[绿色]=>b[蓝色]=>c,d)


您需要将函数与
数组一起翻转
如下

$array = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"blue");

$res = array_flip($array);

foreach ($res as $k => $v)
    $res[$k] = implode(", ", array_keys($array, $k));
print_r($res);
输出:

Array
(
    [red] => a
    [green] => b
    [blue] => c, d
)

阵列翻转不能那样工作。你必须实现你自己的功能。你好!我编辑了你的文章,使一些格式更清晰。引号格式(由
)通常用于英语的句子或段落,而不是代码。输出和错误代码可以像编程代码一样格式化。我也删除了粗体字,你应该谨慎使用。我用英语句子重写了它。你的帖子看起来像是一个练习的摘要,很难阅读。让其他用户更容易阅读,从而获得更好的答案!不客气。很高兴它帮助了你。