Какой способ эффективнее вырезать из ассоциированного массива первый + последний элемент (ключ + значение) - PullRequest
0 голосов
/ 24 февраля 2011

Каким способом эффективно вырезать из ассоциированного массива первый + последний элемент (ключ + значение).

(можно использовать просто unset, но array_pop / array_shift / array_slice не работает на связанном массиве)

Пример:

входной массив:

$input=array(20=>'v1', 56=>'v2', 80=>'v3',88=>'v4');

выходной массив:

$input=array( 56=>'v2', 80=>'v3');

Спасибо

Ответы [ 2 ]

3 голосов
/ 24 февраля 2011

array_slice() это путь:

$input = array(20=>'v1', 56=>'v2', 80=>'v3',88=>'v4');
$output = array_slice($input, 1, -1, true);
print_r($output);

Выход:

Array
(
    [56] => v2
    [80] => v3
)

Не забудьте указать true в качестве 4-го аргумента, иначе ключи не будут сохранены (т.е. вы получите 0,1,2,... в качестве ключей).

1 голос
/ 24 февраля 2011
$a = array_slice($a, 1, -1, true);

(Да, это работает на ассоциативных массивах.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...