我有带有键值对的多维数组,所以我想翻转,即键到达值位置,值到达键位置,但我收到错误
我的 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)
怎么解决这个问题呢?
您正在尝试翻转一个多维数组,其中每个值都是一个数组,但根据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 演示