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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не получается из массива1 присвоить числа массиву2

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
XCERX
Отправлено: 08 Октября, 2014 - 17:57:28
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




У меня есть массив1, я рандомом его заполнил. (Все хорошо работает)

PHP:
скопировать код в буфер обмена
  1.    
  2.    for($i=0;$i<20;$i++){
  3.         $mas1[]=rand(1,20);
  4.         echo $i." = ".$mas1[$i]."<br>";  
  5.     }
  6.  


(Тут ошибка) Надо сравнить с помощью IF (если число больше 10) то записываем в массив2

PHP:
скопировать код в буфер обмена
  1.  
  2.        for($i=0;$i<20;$i++){
  3.         $mas1[$i]=$mas2[$i];
  4.         echo $i." = ".$mas2[$i]."<br>";  
  5.     }
  6.  


Ошибка у меня тут $mas1[$i]=$mas2[$i]; как исправить?
(Добавление)
И потом еще надо: Если таких элементов нету(больше 10), то написать уведомление
Как я понимаю, можно проверить пустой ли массив, если да, то выводим сообщение, правильно?
Как это сделать? Радость
 
 Top
OrmaJever Модератор
Отправлено: 08 Октября, 2014 - 18:23:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




XCERX пишет:
Ошибка у меня тут $mas1[$i]=$mas2[$i]; как исправить?

никакой ошибки в этой строке нету, это ваше воображение.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
XCERX
Отправлено: 08 Октября, 2014 - 18:32:22
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




OrmaJever пишет:
никакой ошибки в этой строке нету, это ваше воображение.

Это хорошо. Как мне присвоить числа из массива1 в массив2? + если числа больше 10
 
 Top
teddy
Отправлено: 08 Октября, 2014 - 18:43:15
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




XCERX пишет:
Как мне присвоить числа из массива1 в массив2? + если числа больше 10

Можно так:

PHP:
скопировать код в буфер обмена
  1. $minVal = rand(11, 20);
  2. $randArray = range(1, 20);
  3. shuffle($randArray);
  4.  
  5. $result = array_filter($randArray, function($val) use($minVal){
  6.     return $val > $minVal;
  7. });
  8.  
  9. var_dump($result);

В принципе такой же результат можно получить следующим образом:
PHP:
скопировать код в буфер обмена
  1. $randArray = range(11, 20);
  2. shuffle($randArray);
  3. var_dump($randArray);

Но это хардкод. Если нужно более гибко, то первый вариант больше подходит.

(Отредактировано автором: 08 Октября, 2014 - 19:21:12)

 
 Top
Panoptik
Отправлено: 08 Октября, 2014 - 18:48:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




чего тут нагородили
вобщем там почти всё было правильно сделано, нужно было добавить одну строку

PHP:
скопировать код в буфер обмена
  1. for($i=0;$i<20;$i++){
  2.         if($mas1[$i] <= 10) continue; // profit here
  3.         $mas2[$i]=$mas1[$i];
  4.         echo $i." = ".$mas2[$i]."<br>";  
  5. }


-----
Just do it
 
 Top
XCERX
Отправлено: 08 Октября, 2014 - 19:18:48
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Panoptik пишет:
чего тут нагородили
вобщем там почти всё было правильно сделано, нужно было добавить одну строку

PHP:
скопировать код в буфер обмена
  1. for($i=0;$i<20;$i++){
  2.         if($mas1[$i] <= 10) continue; // profit here
  3.         $mas2[$i]=$mas1[$i];
  4.         echo $i." = ".$mas2[$i]."<br>";  
  5. }


Спасибо большое!

Если таких элементов нету(больше 10), то написать уведомление
Как я понимаю, можно проверить пустой ли массив, если да, то выводим сообщение, правильно?
Как это сделать? Радость
 
 Top
teddy
Отправлено: 08 Октября, 2014 - 19:20:46
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




PHP:
скопировать код в буфер обмена
  1. if(empty($mas2)){
  2.   //массив пустой
  3. }
 
 Top
XCERX
Отправлено: 08 Октября, 2014 - 19:27:55
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




teddy пишет:
PHP:
скопировать код в буфер обмена
  1. if(empty($mas2)){
  2.   //массив пустой
  3. }


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     echo "Массив А"."<br>";
  4.         for($i=0;$i<5;$i++){
  5.         $mas1[]=rand(1,20);
  6.         echo $i." = ".$mas1[$i]."<br>";  
  7.     }
  8.     echo "<br><br>"."Числа из массива А, больше 10"."<br>";
  9.     for($i=0;$i<5;$i++){
  10.       if($mas1[$i] <= 10) continue;
  11.         $mas2[$i]=$mas1[$i];
  12.         echo $i." = ".$mas2[$i]."<br>";
  13.          
  14.         if(empty($mas2)){
  15.             echo "Массив пустой";
  16.         }
  17.       }
  18. ?>
  19.  


не выводит сообщение, что массив пустой Огорчение
 
 Top
teddy
Отправлено: 08 Октября, 2014 - 19:29:02
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




значит массив не пустой
 
 Top
XCERX
Отправлено: 08 Октября, 2014 - 19:32:22
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




teddy пишет:
значит массив не пустой


Пустой Однако
 
 Top
teddy
Отправлено: 08 Октября, 2014 - 19:35:07
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Говорю не пустой Улыбка
 
 Top
kotyara1979
Отправлено: 08 Октября, 2014 - 19:37:31
Post Id


Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012  


Помог: 7 раз(а)




XCERX пишет:
for($i=0;$i<5;$i++){
      if($mas1[$i] <= 10) continue;
        $mas2[$i]=$mas1[$i];
        echo $i." = ".$mas2[$i]."<br>";
         
        if(empty($mas2)){
            echo "Массив пустой";
        }
      }


Проверку на пустой массив вынесите из последнего цикла. Он должен быть после его завершения.

(Отредактировано автором: 08 Октября, 2014 - 19:38:16)



-----
Сделать можно все. Главное одеть каску.
 
 Top
XCERX
Отправлено: 08 Октября, 2014 - 20:05:00
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




kotyara1979 пишет:
XCERX пишет:
for($i=0;$i<5;$i++){
      if($mas1[$i] <= 10) continue;
        $mas2[$i]=$mas1[$i];
        echo $i." = ".$mas2[$i]."<br>";
         
        if(empty($mas2)){
            echo "Массив пустой";
        }
      }


Проверку на пустой массив вынесите из последнего цикла. Он должен быть после его завершения.


Спасибо, случайно занес в цикл))
(Добавление)
Всем спасибо за помощь, особенно teddy

Вот готовый код:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     echo "Массив А"."<br>";
  4.         for($i=0;$i<5;$i++){
  5.         $mas1[]=rand(1,20);
  6.         echo $i." = ".$mas1[$i]."<br>";  
  7.     }
  8.     echo "<br><br>"."Числа из массива А, больше 10"."<br>";
  9.     for($i=0;$i<5;$i++){
  10.       if($mas1[$i] <= 10) continue;
  11.         $mas2[$i]=$mas1[$i];
  12.         echo $i." = ".$mas2[$i]."<br>";
  13.         }
  14.         if(empty($mas2)){
  15.             echo "Массив пустой";
  16.       }
  17. ?>
  18.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB