как размножить?

52
12 июля 2018, 11:00

Есть строка Один Два Три ... n

Надо получить на выходе: (в общем все возможные сочетания за исключением ОдинОдин, ДваДва, ТриТри, ОдинОдинОдин, ДваДваДва,ТриТриТри):

Один
Два
Три
ОдинДва
ОдинТри
ДваОдин
ДваТри
ТриОдин
ТриДва
ОдинДваТри
ОдинТриДва
ДваОдинТри
ДваТриОдин
ТриОдинДва
ТриДваОдин

Код

$str = "один два три";
$split_str = explode(' ', $str);
echo "<pre>";
print_r($split_str);
echo "</pre>";
Answer 1
$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);
Answer 2

В PHP не силен, но можно использовать регулярку. Что-то типа:

$str = "один два три";
$split_str = explode(' ', $str);
echo "<pre>";
foreach($split_str as $value)
{ 
 if (preg_match('^([А-Я][а-я]+)\1+$', $value, $match)) 
 {
  print_r($value);
 }
} 
echo "</pre>";
READ ALSO
Как вывести все товары из выбранной категории на странице?

Как вывести все товары из выбранной категории на странице?

возникла проблема с выводом товаров из категорий( в выпадающем меню), категории отображаются, но не знаю,как правильно сделать так, чтобы...

38
Полнотекстовый поиск на сайте

Полнотекстовый поиск на сайте

Как сделать полнотекстовый поиск и с использованием сокращенных словНапример, don't, didn't, you're и т

16
Phpstorm, generate getters &amp; setters

Phpstorm, generate getters & setters

Подскажите, почему phpstorm может не создать геттеры и сеттеры? Вот код:

55
Как вывести результат из массива? php

Как вывести результат из массива? php

Нужно вывести максимальные размер изображений

58