【发布时间】:2017-12-22 23:53:28
【问题描述】:
我的程序中有两个静态哈希表:
public static $labels = [
'id' => 'ID',
'name' => 'Name',
'email' => 'E-mail',
'password' => 'Password',
];
public static $columnTypes = [
'id' => 'number',
'name' => 'text',
'email' => 'text',
'password' => 'text',
];
第一个用于数据库列的标签,第二个用于每种类型(过滤所必需的)。
我的问题是,我经常需要通过标签获取列的类型,这会导致速度问题(哈希表在这个方向上相当慢,对吧?)。
我的方法如下:
- 键入一个哈希表
label => type这很糟糕,因为我必须重复自己并且不支持其他语言 - 在运行时在静态内容中创建
label => type哈希表(这在 php 中可行吗?)
对于这个问题是否有更好的方法或最佳实践?在 php 中是否可以使用第二种方法? (也许有一个小例子;)
【问题讨论】:
-
也许看看array_flip ?
-
我知道如何进行翻转,但如何在静态内容中进行?
-
“哈希表在这个方向上很慢,对吧?” -- 错误。而且,无论如何,您在 PHP 中拥有的唯一数据结构名为“array”,但实际上它是一个哈希表(又名字典,又名关联映射)。
-
谢谢。我想获得一个值的键,你必须遍历整个哈希表?
标签: php performance hashtable