1

在 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 是怎么回事?

4

3 回答 3

2

在 PHP 中,数组充当所有类型的容器。它们可以用作地图、列表和集合。

链表功能是通过////函数提供的reset;查看文档的“另请参阅”部分,以确保您不会错过任何一个。prevcurrentnextend

对于地图功能,您只需直接索引到数组;但请记住,PHP 中的数组键只能是字符串或整数,而且大多数时候将两者混合在同一个数组中是不正确的做法(尽管没有技术上的理由不这样做,而且有些情况有意义的地方)。

SPL 提供了SplDoublyLinkedList类,但其中没有什么是简单数组也不​​能提供给您的。

于 2012-05-15T09:39:09.877 回答
1

通常你会在这两种情况下使用数组:

在 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数据结构。

于 2012-05-15T09:41:32.643 回答
0

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

使用 SPL,您将获得:

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

手动的

于 2012-05-15T09:40:54.763 回答