Получите все элементы в массиве, кроме первого.? (РНР)

Есть ли способ указать получение всего, кроме первого элемента в массиве? Обычно я использую foreach () для прокрутки моих массивов.

скажем, массив (1,2,3,4,5), я бы хотел только 2, 3, 4, 5 показать и пропустить 1.

Solutions Collecting From Web of "Получите все элементы в массиве, кроме первого.? (РНР)"

Существует несколько способов решения этой проблемы.

Первое решение – использовать флаг boolean, чтобы указать первый элемент и перейти в ваш foreach

 $firstElement = true; foreach($array as $key => $val) { if($firstElement) { $firstElement = false; } else { echo "$key => $val\n"; } } 

Если ваши элементы, естественно, численно проиндексированы, вам не нужен флаг boolean, вы можете просто проверить, равен ли он 0.

 foreach($array as $key => $val) { if($key === 0) continue; echo "$key => $val\n"; } 

Второй способ – обмануть свой путь в массив с естественной численностью, если он еще не был. Я буду использовать array_keys() чтобы получить естественно численный индексный массив ключей и зацикливать его.

 $keys = array_keys($array); foreach($keys as $index => $key) { if($index === 0) continue; $val = $array[$key]; echo "$key => $val\n"; } 

Третий способ – использовать внутренний указатель массива, чтобы пропустить первый элемент, а затем продолжить в цикле, используя функции reset() , next() , list() и each() . Производительность и ресурс – это лучший вариант. Поддержание работоспособности сильно страдает.

 reset($array); // Reset pointer to 0 next($array); // Advance pointer to 1 while (list($key, $val) = each($array)) { echo "$key => $val\n"; } 

Если вы не против потерять первый элемент массива, вы можете array_shift() его.

 array_shift($array); foreach($array as $key => $val) { echo "$key => $val\n"; } 

Вы можете также array_slice() массив. Я также использую count() , чтобы иметь возможность установить для параметра preserve_keys значение true .

 $sliced = array_slice($array, 1, count($array)-1, true); foreach($sliced as $key => $val) { echo "$key => $val\n"; } 
 $arr = array(1,2,3,4,5); $all_but_the_first_element_array = array_slice($arr, 1); 

array_shift ()

http://us2.php.net/manual/en/function.array-shift.php

пример, используемый на сайте:

 <?php $stack = array("orange", "banana", "apple", "raspberry"); $fruit = array_shift($stack); print_r($stack); ?> 

Вышеприведенный пример выводит:

 Array ( [0] => banana [1] => apple [2] => raspberry ) 

** помните, что указатель на массив сбрасывается (новое значение) после смены

Для этого может быть много способов, так как у нас есть много доступных функций управления массивами. Однако для этого я использую следующий метод:

 $orig_array = array(1, 2, 3, 4 ,5); array_shift($orig_array); print_r($orig_array);