在 Java 案例 #1 中:
Map m1 = new LinkedHashMap();
List l1 = new LinkedList();
m1.put("key1","val1");
m1.put("key2","val2");
l1.add(m1);
在 java 案例中#2
List l1 = new LinkedList();
l1.add("val1");
l1.add("val2");
l1.add("val3");
对于这些情况,PHP 中是怎么回事?
在PHP中,数组充当所有类型的容器。它们可以用作地图、列表和集合。
链表功能通过reset
/prev
/current
/next
/end
功能提供;请查看文档的"另请参阅"部分,以确保您不会错过其中任何一个。
对于映射功能,您只需直接索引到数组中;但请记住,PHP 中的数组键只能是字符串或整数,而且大多数时候在同一个数组中混合两者是不正确的做法(尽管没有技术原因不这样做,并且在某些情况下它是有意义的)。
SPL 提供了 SplDoublyLinkedList
类,但其中没有简单数组不给你的东西。
通常,对于这两种情况,您都会使用数组:
在 PHP 案例 #1 中:
$m1 = array();
$l1 = array();
$m1['key1'] = 'val1';
$m1['key2'] = 'val2';
$l1[] = $m1;
在 PHP 案例 #2 中
$l1 = array();
$l1[] = "val1";
$l1[] = "val2";
$l1[] = "val3";
然后,要浏览列表的元素,您可以使用foreach
或reset/prev/current/next/end
组函数。
如果使用 PHP5,您还可以查看 SPL 数据结构。
即使 array
是 PHP 中最常用的类型,如果使用 PHP 5,也应该看看 SPL。
使用声压级,您可以获得:
- 叠
- 队列
- 链表
- 等等...
手动