Всем привет,
Есть ли встроенная функция PHP, которая возвращает диапазон записей из массива на основе начала и конца индекса?
то есть:
array(0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd');
и теперь я хотел бы только возвращать записи между индексами 1 и 3 (b, c, d).
Есть идеи?
Не могли бы вы сделать это, например, array_slice
?
$a = array(0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd'); array_slice($a, 1, 3);
есть задача для array_slice
array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys = false ]] )
пример:
$ input = array ("a", "b", "c", "d", "e"); $ output = array_slice ($ input, 2); // возвращает «c», «d» и «e», $ output = array_slice ($ input, -2, 1); // возвращает "d" $ output = array_slice ($ input, 0, 3); // возвращает "a", "b" и "c" // обратите внимание на различия в ключах массива print_r (array_slice ($ input, 2, -1)); print_r (array_slice ($ input, 2, -1, true));
Используя array_intersect_key
$myArray = array(0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd'); $arrayRange = array('1', '2', '3'); // this can also be used if you have integer only array values // $arrayRange = range(1,3); $newArray = array_intersect_key($myArray, array_flip($arrayRange)); print_r($newArray); // output: Array ( [1] => b [2] => c [3] => d )
$array1 = array(1,2,3,4,5,6,23,24,26,21,12); foreach(range ($array1[0],$array1[5]) as $age){ echo "Age: {$age}<br />"; }
вы должны получить следующий результат:
Возраст: 1
Возраст: 2
Возраст: 3
Возраст: 4
Возраст: 5
Возраст: 6