Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Массивы
Форумы портала PHP.SU » » Вопросы новичков » Массивы

Страниц (1): [1]
 

1. UNTRUSTED - 17 Апреля, 2012 - 13:14:15 - перейти к сообщению
Смотрим пример!
PHP:
скопировать код в буфер обмена
  1.  
  2. $a=50000;          //это просто для примера
  3. $array=array();  //создаем массив
  4. $i=0;          
  5. while($a>10){     //пока a>10
  6.   $a/=10;            //a делим на 10
  7.   $i++;               //i прибавляем
  8. }
  9. $array[$i].=$a;  //заносим в массив с ключем i значение а
  10. var_dump($array);   //выдаст array(1) {[4]=>'5'};
  11.  

Внимание! Вопрос:
Как можно заполнить ключи, которые меньше данного ключа каким-то значением?
т.е. что-бы получилось вот так:
PHP:
скопировать код в буфер обмена
  1. var_dump($array); // array(5) {[0]=>0,[1]=>0,[2]=>0,[3]=>0,[4]=>5}

P.S. Значение, которое нужно вставить, всегда одинакого!
2. avtor.fox - 17 Апреля, 2012 - 13:46:49 - перейти к сообщению
Ммм.


PHP:
скопировать код в буфер обмена
  1. $val = 0;
  2. for($i=0;$i<key($array);$i++){
  3.         $array[$i] = $val;
  4. }
  5. ksort($array);
3. OrmaJever - 17 Апреля, 2012 - 13:55:29 - перейти к сообщению
UNTRUSTED пишет:
PHP:
скопировать код в буфер обмена
  1. $i=0;          
  2. while($a>10){     //пока a>10
  3.   $a/=10;            //a делим на 10
  4.   $i++;               //i прибавляем
  5. }

Группа "любителей короткого кода" всегда на страже вашего кода
PHP:
скопировать код в буфер обмена
  1. for($i=0;($a/=10)>10;++$i);

Закатив глазки
4. avtor.fox - 17 Апреля, 2012 - 14:01:11 - перейти к сообщению
OrmaJever пишет:
Группа "любителей короткого кода" всегда на страже вашего кода

А в мою сторону стражи "плюнут"? Ха-ха

// Не подумайте, это не глум. Просто интересно, можно ли короче написать Закатив глазки
5. snikers987 - 17 Апреля, 2012 - 15:49:28 - перейти к сообщению
avtor.fox
PHP:
скопировать код в буфер обмена
  1.  
  2. $rgArray[6] = 1;
  3. $rgArray = array_pad($rgArray, -(key($rgArray)+1), 'fill value');
  4.  
6. avtor.fox - 17 Апреля, 2012 - 15:59:59 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $rgArray[6] = 1;
  2. $rgArray = array_pad($rgArray, -(key($rgArray)+1), 'fill value');


Вы хоть проверили "это"?
7. snikers987 - 17 Апреля, 2012 - 16:04:13 - перейти к сообщению
avtor.fox пишет:
PHP:
скопировать код в буфер обмена
  1. $rgArray[6] = 1;
  2. $rgArray = array_pad($rgArray, -(key($rgArray)+1), 'fill value');


Вы хоть проверили "это"?


Предствьте себе, у меня вполне работает.
(Добавление)
avtor.fox Ваш цикл конечно "лучше" =)
8. avtor.fox - 17 Апреля, 2012 - 16:06:23 - перейти к сообщению
snikers987 пишет:
вполне

Всё же есть сомнение?))

PHP:
скопировать код в буфер обмена
  1. array(5) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> string(1) "5" [4]=> int(1) }


Язычок
9. snikers987 - 17 Апреля, 2012 - 16:32:35 - перейти к сообщению
avtor.fox это вы получили запустив мой код? Искренне сочувствую.
10. avtor.fox - 17 Апреля, 2012 - 16:47:30 - перейти к сообщению
snikers987 пишет:
avtor.fox это вы получили запустив мой код? Искренне сочувствую.


snikers987 пишет:
$rgArray[6] = 1;
$rgArray = array_pad($rgArray, -(key($rgArray)+1), 'fill value');


Яж и спрашиваю. Вы его хоть проверяли? Или просто скопировали откуда-то. Хотя бы объясните смысл присваивания шестому ключу значение "1" Закатив глазки

Сочувствуйте Подмигивание
11. snikers987 - 17 Апреля, 2012 - 22:30:39 - перейти к сообщению
avtor.fox
Первый пост читать не пробовали?
12. avtor.fox - 17 Апреля, 2012 - 23:01:54 - перейти к сообщению
snikers987
Всё, хорош Ха-ха

невнимательность Закатив глазки

 

Powered by ExBB FM 1.0 RC1