[php] 배열의 첫 번째 요소를 가져옵니다

배열이 있습니다.

array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )

이 배열의 첫 번째 요소를 얻고 싶습니다. 예상 결과 : 문자열 apple

한 요구 사항 : 참조에 의해 전달 수행 할 수 없습니다 때문에, array_shift좋은 솔루션이 아닙니다.

어떻게해야합니까?



답변

원래 답변이지만 비용이 많이 든다 (O (n)) :

array_shift(array_values($array));

O (1)에서 :

array_pop(array_reverse($array));

기타 사용 사례 등

(배열 포인터 재설정의 의미에서) 수정 $array이 문제가 아닌 경우 다음을 사용할 수 있습니다.

reset($array);

배열 “복사”가 필요한 경우 이론적으로 더 효율적이어야합니다.

array_shift(array_slice($array, 0, 1));

PHP 5.4+ 사용시 (비어 있으면 색인 오류가 발생할 수 있음) :

array_values($array)[0];


답변

Mike가 지적한대로 (가장 쉬운 방법) :

$arr = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )
echo reset($arr); // Echoes "apple"

키를 얻으려면 (재설정 후 실행)

echo key($arr); // Echoes "4"

에서 PHP의 설명서 :

혼합 재설정 (배열 & $ array );

기술:

reset () 은 첫 번째 요소에 대한 배열의 내부 포인터를 되 감고 첫 번째 배열 요소의 값을 반환하거나 배열이 비어 있으면 FALSE를 반환합니다.


답변

$first_value = reset($array); // First element's value
$first_key = key($array); // First element's key


답변

$arr = array( 9 => 'apple', 7 => 'orange', 13 => 'plum' );
echo reset($arr); // echoes 'apple'

현재 포인터 위치를 잃지 않으려면 배열의 별칭을 만드십시오.


답변

current($array)PHP manual에 따르면 배열의 첫 번째 요소를 얻을 수 있습니다 .

모든 배열에는 배열에 삽입 된 첫 번째 요소로 초기화되는 “현재”요소에 대한 내부 포인터가 있습니다.

따라서 배열 포인터를 재배치 할 때까지 작동합니다. 그렇지 않으면 배열을 재설정해야합니다.


답변

언어 구조 “list”로 N 번째 요소를 얻을 수 있습니다.

// First item
list($firstItem) = $yourArray;

// First item from an array that is returned from a function
list($firstItem) = functionThatReturnsArray();

// Second item
list( , $secondItem) = $yourArray;

array_keys기능을 사용하면 키에 대해 동일한 작업을 수행 할 수 있습니다.

list($firstKey) = array_keys($yourArray);
list(, $secondKey) = array_keys($yourArray);


답변

PHP 5.4 이상 :

array_values($array)[0];