|
|
|
| Здравствуйте!
Помогите, пожалуйста, сделать решение состалвения вариационного массива.
<?
$text="личный водитель в санкт петербурге";
$a[]=array('личный','водитель','в','санкт','петербурге');
$a[]=array('личный водитель','водитель в','в санкт','санкт петербурге');
$a[]=array('личный водитель в','водитель в санкт','в санкт петербурге');
$a[]=array('личный водитель в санкт','водитель в санкт петербурге');
$a[]=array('личный водитель в санкт петербурге');
?>
|
Это изначальный текст и ручной результат труда. Нужно, чтобы это создавалось автоматически. Как вариант, вот вариации в другом виде:
/*
* личный
* личный водитель
* личный водитель в
* личный водитель в санкт
* личный водитель в санкт петербурге
* водитель
* водитель в
* водитель в санкт
* водитель в санкт петербурге
* в
* в санкт
* в санкт петербурге
* санкт
* санкт петербурге
* петербурге
*/
интересуют только соседние слова, т.е. "личный санкт" особо не нужен. | |
|
|
|
|
|
|
|
для: Shorr Kan
(16.01.2015 в 19:25)
| | два разных результата.
Соответственно, и задачи разные, и решения. | |
|
|
|
|
|
|
|
для: 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);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(16.01.2015 в 20:35)
| | Спасибо | |
|
|
|