Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вариационный массив
 
 автор: Shorr Kan   (16.01.2015 в 19:25)   письмо автору
 
 

Здравствуйте!
Помогите, пожалуйста, сделать решение состалвения вариационного массива.


<?
$text
="личный водитель в санкт петербурге";
$a[]=array('личный','водитель','в','санкт','петербурге');
$a[]=array('личный водитель','водитель в','в санкт','санкт петербурге');
$a[]=array('личный водитель в','водитель в санкт','в санкт петербурге');
$a[]=array('личный водитель в санкт','водитель в санкт петербурге');
$a[]=array('личный водитель в санкт петербурге');
?>

Это изначальный текст и ручной результат труда. Нужно, чтобы это создавалось автоматически. Как вариант, вот вариации в другом виде:

/*
* личный
* личный водитель
* личный водитель в
* личный водитель в санкт
* личный водитель в санкт петербурге
* водитель
* водитель в
* водитель в санкт
* водитель в санкт петербурге
* в
* в санкт
* в санкт петербурге
* санкт
* санкт петербурге
* петербурге
*/

интересуют только соседние слова, т.е. "личный санкт" особо не нужен.

  Ответить  
 
 автор: Trianon   (16.01.2015 в 20:01)   письмо автору
 
   для: Shorr Kan   (16.01.2015 в 19:25)
 

два разных результата.
Соответственно, и задачи разные, и решения.

  Ответить  
 
 автор: Trianon   (16.01.2015 в 20:35)   письмо автору
 
   для: Trianon   (16.01.2015 в 20:01)
 

Первое можно сделать так:
<?php

  $text
="личный водитель в санкт петербурге";
  
$v explode(' '$text);
  
$rr = array();
  for(
$i 1$i <= count($v); $i++, $rr[] = $r)
    for(
$r=array(), $j 0$j count($v)-$i+1; )
      
$r[] = array_slice($v$j++, $i);

  
print_r($rr);
?>

Второе можно сделать так:
<?php

  $text
="личный водитель в санкт петербурге";
  
$v explode(' '$text);
  
$rr = array();
  for(
$i 0$i count($v)-1$i++)
    for(
$j 1$j count($v)+1-$i$j++)
      
$rr[] = array_slice($v$i$j);

  
print_r($rr);
?>

  Ответить  
 
 автор: Shorr Kan   (16.01.2015 в 22:53)   письмо автору
 
   для: Trianon   (16.01.2015 в 20:35)
 

Спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования