从数组中获取重复的键

Duv*_*ral -1 php arrays associative-array

我有一个像下面的数组,我需要检测所有重复的键,而不是值.

$array1 = array(
    "a"             => "Mike",
    "b"             => "Charles",
    "b"             => "Robert",
    "c"             => "Joseph"
);
Run Code Online (Sandbox Code Playgroud)

我使用的所有函数都专注于值,如果我应用flip_array(),它会自动删除重复的键.

pgu*_*how 10

数组 -Keys永远不会重复,因为它们是唯一标识符.(与数据库主键一样)

声明$array['b']两次将导致覆盖第一个值.

如果数组声明中的多个元素使用相同的键,则只使用最后一个键,因为所有其他元素都将被覆盖.

按照你的逻辑print_r($array1['b'])输出2个值,这是不可能的.


如果您想为键的mulpile值添加维度:

$array1 = array(
    "a"             => "Mike",
    "b"             => array(1 => "Charles", 2 => "Robert"),
    "c"             => "Joseph"
);
Run Code Online (Sandbox Code Playgroud)

print_r($array1['b']);

将返回

Array ( [1] => Charles [2] => Robert )


编辑

如果没有办法,你必须使用preg_match的正则表达式和你的数组作为字符串:

$array1 =' array(
    "a"             => "Mike",
    "b"             => "Charles",
    "b"             => "Robert",
    "c"             => "Joseph"
)';
preg_match_all('/([A-Z])\w+/', $array1, $matches);
print_r($matches[0]);
Run Code Online (Sandbox Code Playgroud)

将返回

 Array ( [0] => Mike [1] => Charles [2] => Robert [3] => Joseph ) 
Run Code Online (Sandbox Code Playgroud)