首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PHP中有一个关联数组的长名称会不好吗?

在PHP中有一个关联数组的长名称会不好吗?
EN

Stack Overflow用户
提问于 2010-06-30 18:09:42
回答 4查看 883关注 0票数 4

我有一个必须返回一维关联数组的函数,如$user_info[$index]=value,其中$index是一个字符串,由

  • user_id
  • full_name
  • photo_file_name

例如,我的关联数组看起来可能类似于$user_info['user-123456789~~Bill Gates~~bill_gates.png']=$value。我需要user_id,full_name和照片来满足另一个需求,以便知道这是谁的价值,以及他的全名是什么等等。

因此,出现的问题如下:

如果考虑到application?

  • If的性能它是坏的(我认为这是个坏主意),那么在这种情况下我如何解决我的问题呢?

附加信息。此函数将用户信息检索到此关联数组中,并返回此数组。此外,我的应用程序将其存储在会话中,以便对其进行寻址并直接从会话变量中检索信息,而不是再次执行查询。最后,我需要一维数组的原因是我使用了一个函数array_diff,其中一个数组是$user_info数组。

注意,考虑到一个用户可能有一个或多个值。

任何建议都会很高兴的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-30 18:20:12

关联数组中有一个长

我不认为这是个问题。如果您想要缩短它,您可以散列您的键值,并存储该值与哈希值。

这么说吧,你问过自己为什么要使用这个模式吗?想出一个不同的数据结构来满足你的需求会更好吗?

我更关心存储在会话变量中的数据量(数组的大小)。我认为使用这个会话来存储这样的数据是个坏主意。

票数 4
EN

Stack Overflow用户

发布于 2010-06-30 18:21:32

当您考虑维护/可读性成本时,将大量信息串联到字符串中所获得的任何性能都很容易丢失。当下一个程序员出现并开始阅读您的代码时,这很容易理解吗?

我建议采用另一种数据结构:

代码语言:javascript
运行
复制
$user_info[$user_id] = array(
  'user_id'         => $user_id, // Redundant but helpful
  'full_name'       => $full_name,
  'photo_file_name' => $photo,
  'value'           => $value
);
票数 3
EN

Stack Overflow用户

发布于 2010-06-30 18:21:50

所以你要把信息(不止一个键)存储到~-分隔的数组键中?看起来真的很难看。不过,这可能不是性能问题。

是否不可能重新实现array_diff,而是根据您的需要进行修改?

**)我查阅了手册中关于如何处理密钥的信息(可能是平衡的b-树?),但没有发现任何令人满意的信息。实际上,可能会出现性能问题,这取决于实现,但是PHP通常擅长这类工作。

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

https://stackoverflow.com/questions/3152083

复制
相关文章

相似问题

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