[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Правильное чтение документации на PHP
kilogram
array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )


Как читать правильно эту строку в документации PHP? Первый параметр означает, что переменная должна передаваться как массив, а вот второй параметр загадочно как-то, расшифруйте.



Спустя 7 минут, 36 секунд (9.05.2012 - 13:21) GET написал(а):
array_slice - извлекает участок массива


$input = array ("a", "b", "c", "d", "e");

$output = array_slice ($input, 2); // возвращает "c", "d" и "e"
$output = array_slice ($input, 2, -1); // возвращает "c", "d"
$output = array_slice ($input, -2, 1); // возвращает "d"
$output = array_slice ($input, 0, 3); // возвращает "a", "b" и "c"


Спустя 9 минут, 42 секунды (9.05.2012 - 13:31) kilogram написал(а):
Как читать в документации второй параметр? Там несколько вложенных квадратных скобок, они сбивают с толку.

Спустя 6 минут, 59 секунд (9.05.2012 - 13:38) kilogram написал(а):
То есть при вызове функции array_slice я могу передать этой функции 4 параметра, но обязательно их должно быть как минимум 2?

array_slice ( $array ,2,3, true);


Спустя 5 минут, 46 секунд (9.05.2012 - 13:43) walerus написал(а):
kilogram Гугл поиск иногда полезен, а также сайты напрямую посвященные PHP языку, например php.su, цитата от туда.

Цитата

array_slice -- Выбрать срез массива
Описание
array array_slice ( array array, int offset [, int length [, bool preserve_keys]] )

array_slice() возвращает последовательность элементов массива array, определённую параметрами offset и length.

Если параметр offset положителен, последовательность начнётся на расстоянии offset от начала array. Если offset отрицателен, последовательность начнётся на расстоянии offset от конца array.

Если в эту функцию передан положительный параметр length, последовательность будет включать length элементов. Если в эту функцию передан отрицательный параметр length, в последовательность войдут все элементы исходного массива, начиная с позиции offset и заканчивая позицией, отстоящей на length элементов от конца array. Если этот параметр будет опущен, в последовательность войдут все элементы исходного массива array, начиная с позиции offset.

Обратите внимание, что array_slice() сбрасывает ключи массива. Начиная с PHP 5.0.2 вы можете переопределить это поведение, установив параметр preserve_keys в TRUE.

Спустя 1 час, 15 минут, 42 секунды (9.05.2012 - 14:59) kilogram написал(а):
А так чтоб сохранялись ключи при замене существующего массива не получиться?

$input = array("color1"=>"red","color2"=> "green","color3"=>"blue","color4"=>"yellow"); 
array_splice($input,1,count($input),"orange");
echo '<pre>'.print_r($input,1).'</pre>';


Результат:

Array
(
[color1] => red
[0] => orange
)


Как сделать чтоб не нумировался ключ с нуля, а подставлялось ассоциативное имя ключа?

Спустя 30 минут, 19 секунд (9.05.2012 - 15:29) kilogram написал(а):
Вот так тоже переименовывает ключи в числа.

$mas = array("Имя1"=>"orange","Имя2"=>"magenta");
$input = array("color1"=>"red","color2"=> "green","color3"=>"blue","color4"=>"yellow");
array_splice($input,1,2,$mas);
echo '<pre>'.print_r($input,1).'</pre>';


Цитата
Array
(
    [color1] => red
    [0] => orange
    [1] => magenta
    [color4] => yellow
)

Спустя 23 минуты, 9 секунд (9.05.2012 - 15:53) kilogram написал(а):
Ещё небольшое уточнение. Почему если заменить это:


array_splice($input,1,2,$mas);
echo '<pre>'.print_r($input,1).'</pre>';



на это



$d = array_splice($input,-2,2,$mas);
echo '<pre>'.print_r($d,1).'</pre>';


Почему обрезания значений элементов не произойдет, а выведет просто последние 2 элемента массива без изменений?

Спустя 4 минуты, 29 секунд (9.05.2012 - 15:57) kilogram написал(а):
Значения последних 2-ух элементов массива $input не меняются почему то

Спустя 16 минут, 42 секунды (9.05.2012 - 16:14) Invis1ble написал(а):
квадратные скобки означают, что параметр является необязательным
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.