i belirli bir türü (Kişi) nesneleri içerebilen bir dizi sarıcı sınıf PersonArray yazdı. Her kişi eşsiz bir tanımlayıcı olarak kimliği + Name döndüren eşsiz bir GetHash () işlevi vardır. Bu PersonArray gelen Kişinin hızlı alımı için izin verir. PersonArray aslında iki iç Diziler tutar. Kişi nesneleri ($ öğe) depolanması için bir, ve Hash değerleri ($ itemsHash) depolanması için.
Ben $ öğeleri dizisindeki [index] konumunda Person nesnesi koyar InsertAt (indeks, Kişi) işlevi oluşturmak istiyorum. Is there a way to insertAt a certain position in an array? If so how can I also update the $itemsHash of the PersonArray?
class Person {
function getHash() {
return $this->id . $this->name;
}
}
class PersonArray implements Iterator {
public $items = array();
public $itemsHash = array();
public function Find($pKey) {
if($this->ContainsKey($pKey)) {
return $this->Item($this->internalRegisteredHashList[$pKey]);
}
}
public function Add($object) {
if($object->getHash()) {
$this->internalRegisteredHashList[$object->getHash()] = $this->Count();
array_push($this->items, $object);
}
}
public function getItems() {
return $this->items;
}
function ContainsKey($pKey) {}
function Count() {}
function Item($pKey) {}
//Iteration implementation
public function rewind() {}
public function current() {}
public function key() {}
public function next() {}
public function valid() {}
}