搜索 Java 的 Map and List 的 PHP 等效项


searching for PHP equivalent for Java's Map and List?

在 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";

然后,要浏览列表的元素,您可以使用foreachreset/prev/current/next/end组函数。

如果使用 PHP5,您还可以查看 SPL 数据结构。

即使 array 是 PHP 中最常用的类型,如果使用 PHP 5,也应该看看 SPL。

使用声压级,您可以获得:

  • 队列
  • 链表
  • 等等...

手动