最奇怪的事情发生在我身上...
我有一个通过ajax post (使用jquery的serialize函数)发送给运行此函数的php脚本的表单(为清晰起见,将其简化):
$arr = $_POST;
unset($arr['command']);
unset($arr['index']);
$vals = $arr;
$keys = $arr;
$keys = array_flip($keys);
return 'vals= ' . implode(',',$vals) . ' keys = ' . implode(',',$keys);我发送的工作字符串看起来像这样...

这给了我一个结果。

现在,当我从"About“(在title字段中)中删除"S”时,我得到的数据字符串如下所示:

这就是我的结果:

"Title“键已经完全从方程式中去掉了!
你知道会发生什么吗?
发布于 2010-09-16 02:37:18
当翻转一个数组时,如果一个值出现了几次,最新的键将被用作它的值,而所有其他的键都将丢失。
一个示例(来自manual)
<?php
$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);
?>输出:
Array
(
[1] => b
[2] => c
)发布于 2010-09-16 02:39:48
array_flip不仅仅返回数组键的数组。相反,它会翻转key→value到value→key的映射。当翻转具有重复值的数组时,将只使用最新的键:
如果某个值出现多次,将使用最新的键作为它的值,其他所有键都将丢失。
现在,如果您只想要数组键,请改用array_keys。
https://stackoverflow.com/questions/3720634
复制相似问题