Есть строка Один Два Три ... n
Надо получить на выходе: (в общем все возможные сочетания за исключением ОдинОдин, ДваДва, ТриТри, ОдинОдинОдин, ДваДваДва,ТриТриТри
):
Один
Два
Три
ОдинДва
ОдинТри
ДваОдин
ДваТри
ТриОдин
ТриДва
ОдинДваТри
ОдинТриДва
ДваОдинТри
ДваТриОдин
ТриОдинДва
ТриДваОдин
Код
$str = "один два три";
$split_str = explode(' ', $str);
echo "<pre>";
print_r($split_str);
echo "</pre>";
$array = [];
$array[1] = $main_array = ['one', 'two', 'three'];
$size = count($array[1]);
$arr_name = 1;
for ($count = 2; $count <= $size; $count++) {
$this_size = count($array[$arr_name]);
$arr_name++;
for ($i = 0; $i < $this_size; $i++) {
$gg = $array[($arr_name-1)][$i];
for ($x = 0; $x < $size; $x++) {
if($gg !== $array[1][$x]) {
$array[$arr_name][] = $gg . $array[1][$x];
}
}
}
if (!empty($main_array)) {
$main_array = array_merge($main_array, $array[$arr_name]);
}
if ($arr_name > 2)
unset($array[($arr_name-1)]);
}
unset($array[$arr_name]);
print_r($main_array);
В PHP не силен, но можно использовать регулярку. Что-то типа:
$str = "один два три";
$split_str = explode(' ', $str);
echo "<pre>";
foreach($split_str as $value)
{
if (preg_match('^([А-Я][а-я]+)\1+$', $value, $match))
{
print_r($value);
}
}
echo "</pre>";
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
возникла проблема с выводом товаров из категорий( в выпадающем меню), категории отображаются, но не знаю,как правильно сделать так, чтобы...
Как сделать полнотекстовый поиск и с использованием сокращенных словНапример, don't, didn't, you're и т
Подскажите, почему phpstorm может не создать геттеры и сеттеры? Вот код: