如何在 PHP 中使用 array_flip 翻转多维数组

Ano*_*ous 2 php arrays

我有带有键值对的多维数组,所以我想翻转,即键到达值位置,值到达键位置,但我收到错误

我的 PHP 代码是:

echo '<pre>',print_r($res),'</pre>';
Run Code Online (Sandbox Code Playgroud)

print_r($res) 时的输出:

Array
(
    [0] => Array
        (
            [userid] => 1
        )

    [1] => Array
        (
            [userid] => 2
        )

    [2] => Array
        (
            [userid] => 3
        )

)
Run Code Online (Sandbox Code Playgroud)

当想要翻转此数组时,输出出现错误:

array_flip(): Can only flip STRING and INTEGER values!
Run Code Online (Sandbox Code Playgroud)

怎么解决这个问题呢?

The*_*ird 5

您正在尝试翻转一个多维数组,其中每个值都是一个数组,但根据array_flip的文档:

请注意,数组的值必须是有效的键,即它们必须是整数或字符串。如果值的类型错误,则会发出警告,并且有问题的键/值对不会包含在结果中。

您可以使用array_map在每个条目上使用 array_flip:

$a = [
    ["userid" => 1],
    ["userid" => 2],
    ["userid" => 3],
];

$a = array_map("array_flip", $a);

print_r($a);
Run Code Online (Sandbox Code Playgroud)

结果

Array
(
    [0] => Array
        (
            [1] => userid
        )

    [1] => Array
        (
            [2] => userid
        )

    [2] => Array
        (
            [3] => userid
        )

)
Run Code Online (Sandbox Code Playgroud)

查看php 演示