배열에서 처음 5 개의 항목을 반환하고 싶습니다. 어떻게해야합니까?
답변
답변
array_splice — 배열의 일부를 제거하고 다른 것으로 바꿉니다.
$input = array(1, 2, 3, 4, 5, 6);
array_splice($input, 5); // $input is now array(1, 2, 3, 4, 5)
PHP 매뉴얼에서 :
array array_splice ( array &$input , int $offset [, int $length = 0 [, mixed $replacement]])
경우 길이가 생략 어레이의 끝에 오프셋에서 모두 제거 . 길이가 지정되고 양수이면 많은 요소가 제거됩니다. 길이가 지정되고 음수이면 제거 된 부분의 끝은 배열 끝의 많은 요소가됩니다. 팁 : 교체가 지정된 경우 오프셋에서 배열 끝까지 모든 것을 제거하려면 length에 count ($ input)를 사용하십시오.
답변
처음 5 개 요소 만 출력하려면 다음과 같이 작성해야합니다.
<?php
if (!empty ( $an_array ) ) {
$min = min ( count ( $an_array ), 5 );
$i = 0;
foreach ($value in $an_array) {
echo $value;
$i++;
if ($i == $min) break;
}
}
?>
배열의 일부를 반환하는 함수를 작성하려면 array_slice를 사용해야합니다.
<?php
function GetElements( $an_array, $elements ) {
return array_slice( $an_array, 0, $elements );
}
?>
답변
array_slice 함수를 사용할 수 있지만 다른 값을 사용합니까? 아니면 처음 5 개만? 처음 5 개만 사용하는 경우 LIMIT on SQL을 사용할 수 있기 때문입니다.
답변
보다 객체 지향적 인 방법은 # [] 메소드에 범위를 제공하는 것입니다. 예를 들어 :
배열에서 처음 3 개 항목을 원한다고 가정하십시오.
숫자 = [1,2,3,4,5,6]
숫자 [0..2] # => [1,2,3]
배열에서 첫 x 항목을 원한다고 가정하십시오.
숫자 [0..x-1]
이 방법의 가장 큰 장점은 배열보다 많은 항목을 요청하면 전체 배열을 반환합니다.
숫자 [0..100] # => [1,2,3,4,5,6]