Php 阵列翻转碰撞问题

Php 阵列翻转碰撞问题,php,arrays,Php,Arrays,是否有一个我不知道的函数/方法可以避免在翻转数组时删除相似的键。示例如下: 原始数组: Array ( [last_modified] => input [published] => input [project_content] => textarea ) Array ( [input] => published [textarea] => project_content ) 使用数组翻转(键碰撞): Array ( [last_modified] =>

是否有一个我不知道的函数/方法可以避免在翻转数组时删除相似的键。示例如下:

原始数组:

Array ( [last_modified] => input [published] => input [project_content] => textarea ) 
Array ( [input] => published [textarea] => project_content )
使用数组翻转(键碰撞):

Array ( [last_modified] => input [published] => input [project_content] => textarea ) 
Array ( [input] => published [textarea] => project_content )

如果要保留关键帧,可以使用二维数组:

<?php
$arr = array ( 'last_modified' => 'input', 'published' => 'input', 'project_content' => 'textarea' );
$result = array();
foreach($arr as $k => $v) {
    if (array_key_exists($v, $result)) {
        $result[$v][] = $k;
    } else {
        $result[$v] = array($k);        
    }
}
print_r($result);
?>

有一种非常简单的方法可以使用标准函数
array\u keys
获取数组中所有具有值
“input”
的键:

$keys = array_keys($array, "input");

仅此而已

您希望如何处理冲突?我试图完成的最后一件事是运行数组搜索以返回例如输入。但是,只有当我切换值以便输入是关键时,才能运行该操作。但是如果我这样做,我会丢失除一个输入之外的所有输入。@Alex:那么你想要所有具有值
“input”
的键吗?在这种情况下,
array\u keys($array,“input”)
正是您想要的。用数组的键,数组的值,计算差异等等来尝试这些疯狂的东西。我想知道您是否可以告诉我如何只获取一个带有字段名的数组,在本例中是
last\u modified
,以及
published
?基本上就是输入数组的
array\u值
$result['input']
应该足够了,Jon这不是我想要的,但我很感谢你的努力。向上投票。