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 :: Перебор значений массивов

 PHP.SU

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


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

> Без описания
sense1
Отправлено: 06 Июля, 2017 - 11:43:17
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Март 2017  


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




Добрый день. Нужно каждой фразой из массива $phrases пройтись по каждому значению из массива $titles и сохранить в новый массив.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $phrases = array("купить iphone","куплю iphone","купить iphone 5s","куплю iphone 5s","купить iphone 5","куплю iphone 5", "куплюiphone 4s");
  3. $titles = array('? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Кликай!','? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Жми!','? Быстрая Доставка за 60 мин! 250 Приложений в подарок!','? Быстрая Доставка - 60 мин! 250 Приложений в подарок!','? Доставка за 60 мин! 250 Приложений в подарок!');
  4.  
  5. $i =0;
  6. $a =0;
  7. $c = 0;
  8. foreach($phrases as $phrase)
  9. {
  10.     if($i == count($titles))
  11.     {
  12.         $i = 0;
  13.     }
  14.    
  15.     $arr[$a][] = $phrases[$a]  . $titles[$i];
  16.     $i++;
  17.     $c++;
  18.     if($c == count($phrases)){
  19.         $a++;
  20.         $i = 0;
  21.     }
  22. }


PHP:
скопировать код в буфер обмена
  1. Должно получится, но это только по первой фразе :
  2. array (size=1)
  3.   0 =>
  4.     array (size=7)
  5.       0 => string 'купить iphone? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Кликай!' (length=135)
  6.       1 => string 'купить iphone? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Жми!' (length=129)
  7.       2 => string 'купить iphone? Быстрая Доставка за 60 мин! 250 Приложений в подарок!' (length=121)
  8.       3 => string 'купить iphone? Быстрая Доставка - 60 мин! 250 Приложений в подарок!' (length=118)
  9.       4 => string 'купить iphone? Доставка за 60 мин! 250 Приложений в подарок!' (length=106)
  10.       5 => string 'купить iphone? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Кликай!' (length=135)
  11.       6 => string 'купить iphone? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Жми!' (length=129)


Пожалуйста подскажите как это задать?
 
 Top
Vladimir Kheifets
Отправлено: 06 Июля, 2017 - 13:41:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




sense1 пишет:
Добрый день. Нужно каждой фразой из массива $phrases пройтись по каждому значению из массива $titles и сохранить в новый массив.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $phrases = array("купить iphone","куплю iphone","купить iphone 5s","куплю iphone 5s","купить iphone 5","куплю iphone 5", "куплюiphone 4s");
  3. $titles = array('? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Кликай!','? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Жми!','? Быстрая Доставка за 60 мин! 250 Приложений в подарок!','? Быстрая Доставка - 60 мин! 250 Приложений в подарок!','? Доставка за 60 мин! 250 Приложений в подарок!');
  4.  
  5. [PHP]Должно получится, но это только по первой фразе :
  6. array (size=1)
  7.   0 =>
  8.     array (size=7)
  9.       0 => string 'купить iphone? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Кликай!' (length=135)
  10.       1 => string 'купить iphone? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Жми!' (length=129)
  11.       2 => string 'купить iphone? Быстрая Доставка за 60 мин! 250 Приложений в подарок!' (length=121)
  12.       3 => string 'купить iphone? Быстрая Доставка - 60 мин! 250 Приложений в подарок!' (length=118)
  13.       4 => string 'купить iphone? Доставка за 60 мин! 250 Приложений в подарок!' (length=106)
  14.       5 => string 'купить iphone? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Кликай!' (length=135)
  15.       6 => string 'купить iphone? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Жми!' (length=129)


Пожалуйста подскажите как это задать?


Добрый день!
По первой фразе такой результат с array (size=7) не полчится т.к. в массив $titles:
PHP:
скопировать код в буфер обмена
  1. array(5) {
  2.   [0]=>
  3.   string(107) "? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Кликай!"
  4.   [1]=>
  5.   string(101) "? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Жми!"
  6.   [2]=>
  7.   string(93) "? Быстрая Доставка за 60 мин! 250 Приложений в подарок!"
  8.   [3]=>
  9.   string(90) "? Быстрая Доставка - 60 мин! 250 Приложений в подарок!"
  10.   [4]=>
  11.   string(78) "? Доставка за 60 мин! 250 Приложений в подарок!"
  12. }


Этот код код выдаёт значения исходных массисвов и новый массив:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     $phrases = array("купить iphone","куплю iphone","купить iphone 5s","куплю iphone 5s","купить iphone 5","куплю iphone 5", "куплюiphone 4s");
  3.     $titles = array('? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Кликай!','? Быстрая Доставка за 60 мин! 250 Приложений в подарок! Жми!','? Быстрая Доставка за 60 мин! 250 Приложений в подарок!','? Быстрая Доставка - 60 мин! 250 Приложений в подарок!','? Доставка за 60 мин! 250 Приложений в подарок!');
  4.     echo '<pre>';
  5.     var_dump($phrases);
  6.     echo '</pre>';
  7.    echo '<pre>';
  8.    var_dump($titles);
  9.     echo '</pre>';
  10.  
  11.     foreach($phrases as $phrase)
  12.     {
  13.             $buf=array();
  14.             foreach($titles as $title)
  15.             {
  16.                 $buf[]=$phrase.$title;
  17.             }
  18.             $arr[]=$buf;
  19.     }
  20.     echo '<pre>';
  21.     var_dump($arr);
  22.     echo '</pre>';
  23. ?>
Результат здесь:
Спойлер (Отобразить)

(Отредактировано автором: 06 Июля, 2017 - 13:44:04)

 
 Top
sense1
Отправлено: 06 Июля, 2017 - 16:50:11
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Март 2017  


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




Vladimir Kheifets

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

PHP:
скопировать код в буфер обмена
  1.  foreach($phrases as $p){
  2.         foreach($titles as $t) {
  3.             $a[array_search($p,$phrases)][] = $p.$t;
  4.         }
  5.     }
  6.     print_r($a);


есть еще такой код, подсказали)
 
 Top
Строитель Модератор
Отправлено: 06 Июля, 2017 - 17:00:41
Post Id



Участник


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


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




sense1
Спойлер (Отобразить)
 
 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