有几种好方法,具体取决于列表的大小和您想用它做什么。
仅使用数组:
$links = array();
$links[] = array('href'=>$href, 'title'=>$title, 'class'=>$class, 'name'=>$name);
$links[] = array('href'=>$href2, 'title'=>$title2, 'class'=>$class2, 'name'=>$name2);
foreach ($links as $link) {
echo "<li>
<a href=\"{$link['href']}\" title=\"{$link['title']}\">
<i class=\"{$link['class']}\"></i> {$link['name']}
</a>
</li>";
}
也可以为这种情况构造对象并将对象存储在数组中:
class linkClass {
public $href;
public $title;
public $class;
public $name;
function __construct($href, $title, $class, $name) {
$this->href = $href;
$this->title = $title;
$this->class = $class;
$this->name = $name;
}
function listItem() {
return "<li>
<a href=\"{$this->href}\" title=\"{$this->title}\">
<i class=\"{$this->class}\"></i> $this->name}
</a>
</li>";
}
}
$array_of_link_objects = array();
$array_of_link_objects[] = new link($href, $title, $class, $name);
$array_of_link_objects[] = new link($href2, $title2, $class2, $name2);
foreach ($array_of_link_objects as $link_object) {
echo $link_object->listItem();
}
为了将来参考,如果您需要在不使用哈希表的情况下存储大量项目,请尝试查看 php.net 上的 splFixedArray 文档。它只允许使用数字键,所以 $spl_object['href'] 不起作用。不过,对于大型 splFixedArrays,内存节省是巨大的。对于您的情况,如果您要在许多不同的文件中使用这些链接,我可能会说尝试使用对象方法,以便以后轻松维护代码。如果它被隔离到一个文件并且您没有使用 100k 链接(因为数组对于 PHP 中的内存来说非常糟糕),那么只使用多维数组就可以了。