リストのサイズとそれを使って何をしたいかに応じて、いくつかの良い方法があります。
配列のみを使用する:
$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']は機能しません。ただし、大規模なsplFixedArrayの場合、メモリの節約は非常に大きくなります。あなたの場合、コードのメンテナンスが後で簡単になるように、これらのリンクを多くの異なるファイルで使用する場合は、オブジェクトアプローチを試してみてください。1つのファイルに分離されていて、100kリンクを使用していない場合(配列はPHPのメモリに関してひどいため)、多次元配列だけで問題ありません。