Я хочу вернуть первые 5 элементов из массива. Как я могу это сделать?Возврат первых элементов x из массива
ответ
array_slice
возвращает часть массива с
$sliced_array = array_slice($array, 0, 5)
это код, который вы хотите в вашем случае, чтобы вернуть первые пять элементов
, но это не будет работать с ассоциативными массивами. ключи теряются. – ESCOBAR
@ESCOBAR: ассоциативные массивы не обязательно имеют порядок, они отображают только ключи к значениям; поэтому «значения от 3 до 7» на самом деле не имеют никакого смысла ... – knittl
вправо, но в этом случае он не имеет отношения к заказу. это примерно первые 5 предметов. и здесь вы не можете использовать array_slice. – ESCOBAR
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, но будете ли вы использовать другие значения? или только первые 5? потому что если вы будете использовать только первые 5, вы можете использовать LIMIT на SQL.
Более объектно ориентированным способом было бы предоставить диапазон методу # []. Например:
Скажите, что вы хотите получить первые 3 элемента из массива.
числа = [1,2,3,4,5,6]
числа [0..2] # => [1,2,3]
Допустим, вы хотите первый х элементы из массива.
числа [0..x-1]
Большая вещь об этом методе, если вы просите больше деталей, чем в массиве, он просто возвращает весь массив.
номера [0..100] # => [1,2,3,4,5,6]
Но php не поддерживает диапазоны. Вы уверены, что не говорите о рубине или что-то в этом роде? –
«Более объектно-ориентированный способ»? Этот ответ не имеет ничего общего с объектно-ориентированным программированием. – Ducky
wtf with downvotes в этом вопросе? – SilentGhost
Я обогнал всех, так как каждый ответ хорош. – Vili