키가 숫자 및 문자열 인 배열을 만드는 방법.배열 키 (문자열 및 숫자)
<?php
$array = array
(
'test' => 'thing',
'blah' => 'things'
);
echo $array[0]; // thing
echo $array[1]; // things
echo $array['test']; // thing
echo $array['blah']; // things
?>
키가 숫자 및 문자열 인 배열을 만드는 방법.배열 키 (문자열 및 숫자)
<?php
$array = array
(
'test' => 'thing',
'blah' => 'things'
);
echo $array[0]; // thing
echo $array[1]; // things
echo $array['test']; // thing
echo $array['blah']; // things
?>
$array = array_values($array);
구현
하지만 왜 필요한가요? 당신의 본보기를 확장 할 수 있습니까?
원래의 키가 필요합니다. 문자열 인 키에 값을 할당하려고합니다. 숫자 만 있습니다. – NoOne
당신은 "ArrayAccess을 구현한다"고 자신의 클래스를 수동으로 처리 할 수있는 같은 수준의 그런 행동에 대한
을 구현할 수
UPD : 그냥 재미
class MyArray implements ArrayAccess
{
private $data;
private $keys;
public function __construct(array $data)
{
$this->data = $data;
$this->keys = array_keys($data);
}
public function offsetGet($key)
{
if (is_int($key))
{
return $this->data[$this->keys[$key]];
}
return $this->data[$key];
}
public function offsetSet($key, $value)
{
throw new Exception('Not implemented');
}
public function offsetExists($key)
{
throw new Exception('Not implemented');
}
public function offsetUnset($key)
{
throw new Exception('Not implemented');
}
}
$array = new MyArray(array(
'test' => 'thing',
'blah' => 'things'
));
var_dump($array[0]);
var_dump($array[1]);
var_dump($array['test']);
var_dump($array['blah']);
당신은 조회 배열을 생성하는 array_keys을 사용할 수
<?php
$array = array
(
'test' => 'thing',
'blah' => 'things'
);
$lookup = array_keys ($array);
// $lookup holds (0=>'test',1=>'blah)
echo $array[$lookup[0]]; // thing
echo $array[$lookup[1]]; // things
echo $array['test']; // thing
echo $array['blah']; // things
?>
그래, 작동하고 가장 잘 해결됩니다. – NoOne
질문이 명확하지 않다, 정확히 무엇을 원하는가/의미? – Sarfraz
안정적으로 작동하지 않습니다. Assoziative 배열의 항목 순서는 입력 순서에 따라 다릅니다. 배열의 첫 번째 요소는'test' 대신 'blah'가 될 수도 있습니다. – dbemerlin
@dbemerlin : 의견을 뒷받침하는 참고 자료가 있습니까? 나는 항상 연관 배열이 삽입 순서에 따라 정렬되었다고 생각했지만 설명서에서 어떤 식 으로든 다른 것을 발견 할 수는 없습니다. – grossvogel