我有一个必须返回一维关联数组的函数,如$user_info[$index]=value,其中$index是一个字符串,由
例如,我的关联数组看起来可能类似于$user_info['user-123456789~~Bill Gates~~bill_gates.png']=$value。我需要user_id,full_name和照片来满足另一个需求,以便知道这是谁的价值,以及他的全名是什么等等。
因此,出现的问题如下:
如果考虑到application?
附加信息。此函数将用户信息检索到此关联数组中,并返回此数组。此外,我的应用程序将其存储在会话中,以便对其进行寻址并直接从会话变量中检索信息,而不是再次执行查询。最后,我需要一维数组的原因是我使用了一个函数array_diff,其中一个数组是$user_info数组。
注意,考虑到一个用户可能有一个或多个值。
任何建议都会很高兴的。
发布于 2010-06-30 18:20:12
关联数组中有一个长键。
我不认为这是个问题。如果您想要缩短它,您可以散列您的键值,并存储该值与哈希值。
这么说吧,你问过自己为什么要使用这个模式吗?想出一个不同的数据结构来满足你的需求会更好吗?
我更关心存储在会话变量中的数据量(数组的大小)。我认为使用这个会话来存储这样的数据是个坏主意。
发布于 2010-06-30 18:21:32
当您考虑维护/可读性成本时,将大量信息串联到字符串中所获得的任何性能都很容易丢失。当下一个程序员出现并开始阅读您的代码时,这很容易理解吗?
我建议采用另一种数据结构:
$user_info[$user_id] = array(
'user_id' => $user_id, // Redundant but helpful
'full_name' => $full_name,
'photo_file_name' => $photo,
'value' => $value
);发布于 2010-06-30 18:21:50
所以你要把信息(不止一个键)存储到~-分隔的数组键中?看起来真的很难看。不过,这可能不是性能问题。
是否不可能重新实现array_diff,而是根据您的需要进行修改?
**)我查阅了手册中关于如何处理密钥的信息(可能是平衡的b-树?),但没有发现任何令人满意的信息。实际上,可能会出现性能问题,这取决于实现,但是PHP通常擅长这类工作。
https://stackoverflow.com/questions/3152083
复制相似问题