Подтвердить что ты не робот

PHP - получение записей массивов по диапазону индексов

HI,

Есть ли какая-либо встроенная функция PHP, которая возвращает диапазон записей из массива на основе начала и конца индекса?

то есть:.

array(0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd');

и теперь я хотел бы только возвращать записи между индексами 1 и 3 (b, c, d).

Любая идея?

4b9b3361

Ответ 1

Не могли бы вы сделать это, например. array_slice?

$a = array(0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd');
array_slice($a, 1, 3); 

Ответ 2

есть задача для 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);      // returns "c", "d", and "e"
$output = array_slice($input, -2, 1);  // returns "d"
$output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));

Ответ 3

Используя 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 )

Ответ 4

$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