首页 / PHP / 散列或映射如何在PHP中工作
散列或映射如何在PHP中工作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了散列或映射如何在PHP中工作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2324字,纯文字阅读大概需要4分钟。
内容图文
在Perl的语言中,我将hash定义为一个事物与另一个事物之间的映射或一个必要的元素列表.如文档中所述..
哈希是基本数据类型.它使用密钥来访问其内容.
所以基本上哈希接近数组.他们的初始化甚至看起来非常相似.
如果我要在Perl中创建一个映射,我可以做下面的比较.
my %map = (
A => [qw(a b c d)],
B => [qw(c d f a)],
C => [qw(b d a e)],
);
my @keys = keys %map;
my %matches;
for my $k ( 1 .. @keys ) {
$matches{$_} |= 2**$k for @{$map{ $keys[$k-1] }};
}
for ( sort keys %matches ) {
my @found;
for my $k ( 1 .. @keys ) {
push @found, $keys[$k-1] if $matches{$_} & 2**$k;
}
print "$_ found in ", (@found? join(',', @found) : 0 ), "\n";
}
Output:
a found in A,C,B
b found in A,C
c found in A,B
d found in A,C,B
e found in C
f found in B
我想在php找到最佳方法来提高性能和效率
解决方法:
如果我理解正确,您希望将您的Perl哈希知识应用于PHP.如果我是对的,那么……
在PHP中,“Perl哈希”通常称为“关联数组”,PHP将其实现为一个恰好将键作为索引并且其值与常规数组类似的数组.查看PHP Array docs,了解有关PHP如何使用此(和其他)类型的数组的大量示例.
PHP的优点在于它如何处理数组非常灵活.您可以将数组定义为具有键值对,然后将其视为常规数组并忽略键,这样就可以了.你可以混搭……它不会抱怨太多.
从哲学上讲,哈希或地图只是将离散的相关信息保存在一起的一种方式.这就是所有大多数非原始数据结构,并且PHP对于你如何处理事情并不十分自以为是;它有许多内置的优化,并且能够有效地完成这些类型的事情.
要回答与您的示例相关的问题:
1)至于简单(我认为你的意思)和可维护性,我认为你使用关联数组没有任何问题.如果数据集成对,则键值对是表达此类数据的自然方式.
2)就最有效率而言,就代码行和脚本执行开销而言……好吧,使用这样的映射对PHP来说是一个非常小的任务.我认为处理它的任何其他方式都不重要,PHP可以成千上万地处理它而无需投诉.现在,如果你可以避免使用正则表达式,另一方面……
3)你正在使用它,真的.不要过度思考 – 在PHP中,这只是一个“数组”,就是这样.它是一个包含任意数量元素的变量,PHP处理多维或相关性非常好.足够好,它几乎永远不会成为你有任何问题的原因.
PHP将在幕后非常合乎逻辑地有效地处理哈希/地图之类的事情,以至于语言的整个部分都是为了让您不必费心去思考这些事情.如果您以块的形式关联数据,请使用数组;如果数据成对出现,则使用键值对;如果它来自十几个,使用“数组数组”(一个多维数组,其中一些 – 或所有 – 的元素是数组).
PHP没有做任何愚蠢的事情就像创建一个巨大的开销只是因为你想使用键值对,它有很多内置的功能,如foreach $yourArray as $key => $value和你使用的函数,如array_keys()和array_values().随意使用它们 – 作为核心功能,它们通常非常优化!
内容总结
以上是互联网集市为您收集整理的散列或映射如何在PHP中工作全部内容,希望文章能够帮你解决散列或映射如何在PHP中工作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。