首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP array_flip() Bug?

PHP array_flip() Bug?
EN

Stack Overflow用户
提问于 2010-09-16 02:31:01
回答 2查看 1.7K关注 0票数 1

最奇怪的事情发生在我身上...

我有一个通过ajax post (使用jquery的serialize函数)发送给运行此函数的php脚本的表单(为清晰起见,将其简化):

代码语言:javascript
复制
            $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“键已经完全从方程式中去掉了!

你知道会发生什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-16 02:37:18

当翻转一个数组时,如果一个值出现了几次,最新的键将被用作它的值,而所有其他的键都将丢失。

一个示例(来自manual)

代码语言:javascript
复制
<?php
$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);
?>

输出:

代码语言:javascript
复制
Array
(
    [1] => b
    [2] => c
)
票数 4
EN

Stack Overflow用户

发布于 2010-09-16 02:39:48

array_flip不仅仅返回数组键的数组。相反,它会翻转key→value到value→key的映射。当翻转具有重复值的数组时,将只使用最新的键:

如果某个值出现多次,将使用最新的键作为它的值,其他所有键都将丢失。

现在,如果您只想要数组键,请改用array_keys

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3720634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档