
09.05.2012, 13:16
|
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
|
Правильное чтение документации на PHP
array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
Как читать правильно эту строку в документации PHP? Первый параметр означает, что переменная должна передаваться как массив, а вот второй параметр загадочно как-то, расшифруйте.
|
|

09.05.2012, 13:29
|
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
|
Целое число.
|
|

09.05.2012, 13:31
|
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
|
Как читать в документации второй параметр? Там несколько вложенных квадратных скобок, они сбивают с толку.
|
|

09.05.2012, 13:38
|
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
То есть при вызове функции array_slice я могу передать этой функции 4 параметра, но обязательно их должно быть как минимум 2?
array_slice ( $array ,2,3, true);
|
|

09.05.2012, 14:52
|
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
|
В квадратных скобках пишутся необязательные параметры, да.
|
|

09.05.2012, 15:01
|
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
А так чтоб сохранялись ключи при замене существующего массива не получиться?
|
Код:
|
$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
) |
Как сделать чтоб не нумировался ключ с нуля, а подставлялось ассоциативное имя ключа?
|
|

09.05.2012, 15:30
|
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
Вот так тоже переименовывает ключи в числа.
$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
)
|
|
|

09.05.2012, 15:54
|
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
Ещё небольшое уточнение. Почему если заменить это:
|
Код:
|
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 элемента массива без изменений?
|
|

09.05.2012, 15:59
|
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
|
Значения последних 2-ух элементов массива $input не меняются почему то
|
|
|
|