【发布时间】:2012-05-06 00:06:08
【问题描述】:
假设我们有一组学生:
学生:本·萨姆 ...
每个学生家里都有一组书:
书籍:
- 山姆 A B C D
- Ben D E F
- 瑞恩 A D G D
所以在 PHP 中,$students 数据结构是这样的:
Array
(
[0] => Array
(
[name] => Joe Smith
[books] => Array
(
[0] => A
[1] => B
[2] => C
)
)
)
我们想计算 A 被重复了多少次以及谁拥有 A B 和 C 等。 在 php 中执行此操作的一种方法是:
if (sizeof($potential_entries) > 0) :
for ($j = 0, $potentialsize = sizeof($potential_entries); $j < $potentialsize; ++$j) {
for ($k = 0, $listsize = sizeof($student_book); $k < $listsize; ++$k) {
if ($student_book[$k] == $potential_entry[$k]) :
$match = 1;
$student_book[$k]['like_count']++;
endif;
}
}
这不是很有效,我们宁愿想要一个映射结构或一个哈希表,php 有像 perl 这样的结构吗?还是我们必须手动构建它们。 编辑: 我可以在 PHP 中看到我们有关联数组?您能否举一个在文档中找不到的示例。 对于山姆:
var_dump($potential_entry):
[0]=>array(2) { ["name"]=> string(1) "A" ["id"]=> string(11) "1348"}
[1]=>array(2) { ["name"]=> string(1) "B" ["id"]=> string(11) "1483"}
[2]=>array(2) { ["name"]=> string(1) "C" ["id"]=> string(11) "13"}
[3]=>array(2) { ["name"]=> string(1) "D" ["id"]=> string(11) "1174"}
这是 Sam 的,其余的我们有相同的结构。所以 sam 是数组,books 是数组,sam 有很多书。 在这个例子中
- D count=3 山姆·本·瑞恩
- 计数=2 sam ryan
- 等等...
【问题讨论】:
-
我不明白,PHP有关联数组,那是地图的别称……
-
你能用一个例子/提示澄清一下吗...我可以在 php 中看到关联数组,但我不确定如何表示我的列表。
-
我的意思是如何在 php 中推送和弹出到哈希数组
-
sizeof可以替换为count我认为或者如果$potential_entries始终是一个数组,那么只需if ( $potential_entries )应该检查它是否为空。 -
你能告诉我们
var_dump($potential_entries)的输出吗?
标签: php arrays hashmap hashtable