PHP - 배열에서 마지막 요소 앞에 있는 요소를 가져오는 방법은 무엇입니까?
어떻게 하면 PHP5의 배열에서 마지막 요소 앞에 있는 요소를 가져올 수 있습니까?
이는 이 어레이에서도 작동합니다.
$array[0] = "hello";
$array[5] = "how";
$array[9] = "are";
end($array);
echo prev($array); // will print "how"
count()를 사용하는 다른 솔루션은 배열의 인덱스가 순서대로 이동한다고 가정합니다. end와 prev를 사용하여 배열 포인터를 이동하면 실제 값을 얻을 수 있습니다.위의 배열에서 count() 메서드를 사용해 보십시오. 그러면 실패합니다.
$array[count($array)-2]
숫자 인덱스 배열(0부터)이어야 합니다.이 작업을 수행하려면 최소 두 개의 요소가 있어야 합니다.(계속)
array_interval은 음의 오프셋을 두 번째 인수로 사용합니다.그러면 두 번째 마지막 항목이 포함된 단일 항목 배열이 제공됩니다.
$arr = array(1,2,3,4,5,6);
array_slice($arr, -2, 1);
단일 값을 원하는 경우 몇 가지 옵션이 있습니다.중간 변수를 사용해도 괜찮다면 [0]으로 첫 번째 값을 얻거나 array_pop 또는 array_shift를 호출하면 됩니다. 둘 다 참조를 통해 전달된 변수가 필요합니다. 그렇지 않으면 엄격한 모드에서 경고가 표시됩니다.
또는 array_sum 또는 array_product를 사용할 수도 있습니다. 이는 약간 번거롭지만 단일 항목 배열에 적합합니다.
연관 배열과 숫자 배열 모두에 사용할 수 있는 방법은 다음과 같습니다.array_pop()
요소를 배열 끝에서 팝업합니다.
$last = array_pop($array);
$second_last = array_pop($array);
// put back the last
array_push($array, $last);
모든 배열에는 현재 배열 요소를 가리키는 "내부 배열 포인터"가 있으며, PHP에는 배열을 탐색하고 현재 요소 키와 값을 볼 수 있는 여러 기능이 있습니다.
end()
배열의 내부 포인터를 마지막 요소로 설정reset()
배열의 내부 포인터를 첫 번째 요소로 설정prev()
내부 배열 포인터 되감기next()
배열의 내부 배열 포인터를 고급으로 이동합니다.current()
배열의 현재 요소 반환key()
배열에서 키 가져오기each()
배열에서 현재 키와 값 쌍을 반환하고 배열 커서를 이동합니다.
이러한 함수는 배열이 비어있든, 순차적이든, 연관적이든 작동하며 배열이 지정되지 않았기 때문에 모든 배열에서 작동해야 한다고 가정했습니다.
$array = array(
'before_last' => false,
'last' => false,
);
end($array); /*
- set pointer to last element -> $array['last']
- return new current element value if it exists, -> false
- else return FALSE
*/
prev($array); /*
- set pointer one place before current pointer -> $array['before_last']
- return new current element value if it exists, -> false
- else return FALSE
*/
if(!is_null(key($array)){ /*
- return current element key if it exists -> "before_last"
- else return NULL
*/
$before_last_element_value = current($array); /*
- return current element value if it exists, -> false
- else return FALSE
*/
}
예상되는 결과를 볼 수 있듯이 (false
) 및 존재하지 않는 요소에 대한 결과는 동일합니다(FALSE
값을 할 수 요소 키가 반환된 요소 값을 사용하여 요소가 존재하는지 확인할 수 없으므로 요소 키가 다릅니다.
요소가 존재하는 경우 현재 키의 값을 반환합니다. 그렇지 않으면 NULL을 반환합니다. 유효한 키는 절대 NULL일 수 없으므로 NULL이 반환되면 요소가 존재하지 않음을 확인할 수 있습니다.
// Indexed based array
$test = array('a','b','c','d','e');
$count = count($test);
print $test[$count-2];
// Associative Array
$months = array(
'jan'=>'January',
'feb' => 'february',
'mar' => 'March',
'apr' => 'April'
);
$keys = array_keys($months);
$count = count($keys);
print $keys[$count-2];
언급URL : https://stackoverflow.com/questions/2194388/php-how-to-get-the-element-before-the-last-element-from-an-array
'programing' 카테고리의 다른 글
PowerShell 이 용어는 cmdlet 함수 스크립트 파일 또는 작동 가능한 프로그램으로 인식되지 않습니다. (0) | 2023.07.25 |
---|---|
Node.js에서 가져오기: "ES 모듈을 로드하려면 가져오기를 사용해야 함" 오류 (0) | 2023.07.25 |
Node.js에서 대용량 로그 파일 구문 분석 - 한 줄씩 읽기 (0) | 2023.07.25 |
Spring Boot @RepositoryRestResource를 특정 URL에 매핑하려면 어떻게 해야 합니까? (0) | 2023.07.25 |
이 입력은 파이썬 'any' 기능과 어떻게 작동합니까? (0) | 2023.07.25 |