programing

PHP - 배열에서 마지막 요소 앞에 있는 요소를 가져오는 방법은 무엇입니까?

goodsources 2023. 7. 25. 20:55
반응형

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값을 할 수 요소 키가 반환된 요소 값을 사용하여 요소가 존재하는지 확인할 수 없으므로 요소 키가 다릅니다.

키는 정수 또는 문자열일 수 있습니다.값은 임의의 .source일 수 있습니다.

요소가 존재하는 경우 현재 키의 값을 반환합니다. 그렇지 않으면 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

반응형