Я хочу вернуть первые 5 элементов из массива. Как я могу это сделать?
Ответы:
array_slice
возвращает кусок массива
$sliced_array = array_slice($array, 0, 5)
это код, который вы хотите в вашем случае, чтобы вернуть первые пять элементов
array_combine(array_slice(array_keys($array), 0, 5), array_slice($array, 0, 5))
array_slice
возвращает часть массива». Но я отредактирую свой ответ, чтобы было немного понятнее.
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]])
Если длина не указана, удаляет все от смещения до конца массива . Если длина указана и положительна, то многие элементы будут удалены. Если длина указана и имеет отрицательное значение, то концом удаленной части будет такое же количество элементов от конца массива. Совет: чтобы удалить все от смещения до конца массива, когда также указана замена, используйте 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()
которое уже выполняет работу, в эту ненужную функцию, которая добавляет накладные расходы и не имеет ценности?
Более объектно-ориентированным способом было бы предоставить диапазон методу # []. Например:
Допустим, вам нужны первые 3 элемента из массива.
числа = [1,2,3,4,5,6]
числа [0..2] # => [1,2,3]
Допустим, вам нужны первые x элементов из массива.
числа [0..x-1]
Самое замечательное в этом методе заключается в том, что если вы запрашиваете больше элементов, чем имеет массив, он просто возвращает весь массив.
числа [0..100] # => [1,2,3,4,5,6]