Ben (yani 5. anahtarının değeri olsun) sayısal erişmek gerekebilir bir ilişkisel dizi var.
$data = array(
'one' => 'something',
'two' => 'else',
'three' => 'completely'
) ;
Ben yapmak gerekiyor:
$data['one']
ve
$data[0]
aynı değeri, 'bir şey' almak.
My initial thought is to create a class wrapper that implements ArrayAccess with offsetGet() having code to see if the key is numeric ve act accordingly, using array_values:
class MixedArray implements ArrayAccess {
protected $_array = array();
public function __construct($data) {
$this->_array = $data;
}
public function offsetExists($offset) {
return isset($this->_array[$offset]);
}
public function offsetGet($offset) {
if (is_numeric($offset) || !isset($this->_array[$offset])) {
$values = array_values($this->_array) ;
if (!isset($values[$offset])) {
return false ;
}
return $values[$offset] ;
}
return $this->_array[$offset];
}
public function offsetSet($offset, $value) {
return $this->_array[$offset] = $value;
}
public function offsetUnset($offset) {
unset($this->_array[$offset]);
}
}
Bunu yapmak için PHP şekilde inşa herhangi yoksa ben merak ediyorum. Ben daha ziyade doğal işlevleri kullanmak istiyorum, ama şimdiye kadar bunu yapan bir şey görmedim.
Herhangi bir fikir?
Thanks,
Fanis