Сделайте все комбинации из 3 текстовых файлов в PHP - PullRequest
0 голосов
/ 31 января 2019

Есть ли действующий софт для создания всех комбинаций из 3-х текстовых файлов?Пример -

1.txt: 1 2

2.txt: 3 4

3.txt: 5 6

Результаты: 13 14 15 1623 24 25 26

1 Ответ

0 голосов
/ 31 января 2019

Патрик, я не уверен, что это лучший способ сделать это, он делает то, что вы хотите, но опять же Я не совсем уверен , если использование 3-х последовательных циклов - хорошая практика.В реальной среде ваши txts-файлы могут содержать сотни или тысячи записей, которые сделают это болезненным для вашего сервера для обработки, у вас могут возникнуть проблемы с памятью.Сказав, что это мой подход, обратите внимание, что я проверил это с разным количеством строк в каждом текстовом контенте, чтобы убедиться, что он работает.Исходя из этого, возможно, вы можете начать другой вопрос, может быть, кто-то с большим количеством PHP-навыков, чем я, может помочь вам улучшить это.И последнее, но не менее важное: всегда помните, что при запросе вы должны показать нам свой код, свои попытки достичь своих целей.

<?php

    function trim_value(&$value) {
        $value = trim($value);
    }
    function explode_text_files($file) {
        $pieces = explode("\n", $file);
        array_walk($pieces, 'trim_value'); // removes white space
        return array_filter($pieces); // deletes empty array entries
    }
    function join_lines($word) {
        return " ".$word;
    }

    $text_from_file_1 = "
    katofle
    bigos
    testing
    ";
    $text_from_file_2 = "
    sa
    nie sa
    ";
    $text_from_file_3 = "
    dobre
    zajebiste
    abc
    zde
    ghjklj
    ";

    $content_from_file_1 = explode_text_files($text_from_file_1);
    $content_from_file_2 = explode_text_files($text_from_file_2);
    $content_from_file_3 = explode_text_files($text_from_file_3);

    $result = "";

    foreach ($content_from_file_1 as $anchor) {
        foreach ($content_from_file_2 as $anchor_2) {
            foreach ($content_from_file_3 as $anchor_3) {
                $result .= $anchor . join_lines($anchor_2) . join_lines($anchor_3);
                $result .= "<br>";
            }
        }
    }

    echo $result;

?>
...