배열이 있습니다.
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];