php实现arraylist结构
PHP 实现 ArrayList 结构
PHP 本身没有内置的 ArrayList 类,但可以通过数组或 SplFixedArray 实现类似功能。以下是几种实现方式:
使用 PHP 原生数组
PHP 数组是动态的,可以模拟 ArrayList 的功能:

$arrayList = [];
$arrayList[] = "element1"; // 添加元素
$arrayList[] = "element2";
unset($arrayList[0]); // 移除元素
$arrayList = array_values($arrayList); // 重新索引
echo count($arrayList); // 获取大小
使用 SplFixedArray
SplFixedArray 提供固定大小的数组,但可以通过调整大小模拟动态数组:

$arrayList = new SplFixedArray(2);
$arrayList[0] = "element1";
$arrayList[1] = "element2";
$arrayList->setSize(3); // 调整大小
$arrayList[2] = "element3";
echo $arrayList->count(); // 获取大小
自定义 ArrayList 类
封装一个类实现动态数组功能:
class ArrayList {
private $elements = [];
public function add($element) {
$this->elements[] = $element;
}
public function get($index) {
return $this->elements[$index] ?? null;
}
public function remove($index) {
if (isset($this->elements[$index])) {
unset($this->elements[$index]);
$this->elements = array_values($this->elements);
}
}
public function size() {
return count($this->elements);
}
}
$list = new ArrayList();
$list->add("item1");
$list->add("item2");
echo $list->size();
使用 ArrayObject 类
ArrayObject 提供对象化数组操作:
$arrayList = new ArrayObject();
$arrayList->append("element1");
$arrayList->append("element2");
$arrayList->offsetUnset(0); // 移除元素
echo $arrayList->count(); // 获取大小
性能比较
- 原生数组:灵活性最高,适合大多数场景。
- SplFixedArray:内存效率更高,适合已知或固定大小的数据。
- 自定义类:可扩展性强,适合需要封装逻辑的场景。
- ArrayObject:提供额外方法,适合需要对象化操作的场景。
选择哪种方式取决于具体需求,如是否需要动态调整大小或额外功能。






