Проверьте, можно ли создать слово из случайной строки букв с помощью PHP

<?php
    $randomstring = 'raabccdegep';
    $arraylist = array("car", "egg", "total");
?>

Над $randomstring находится строка, содержащая несколько букв алфавита. И у меня есть массив с именем $arraylist, который содержит 3 слова, такие как 'car' , 'egg' , 'total'.

Теперь мне нужно проверить строку, используя слова в массиве, и напечатать, можно ли создать слово, используя строку. Например, мне нужен вывод Like.

car is possible.
egg is not possible.
total is not possible.

Также проверьте повторение письма. т.е. beep тоже возможно. Поскольку строка содержит два e. Но egg невозможно, потому что есть только один g.


person AdhershMNair    schedule 25.05.2017    source источник
comment
Падает ли символ после того, как он используется в строке проверки? например, мы ищем автомобиль, и строка подтверждения — thecar (автомобиль найден, затем строка подтверждения — now )-> the?   -  person Carlos Delgado    schedule 25.05.2017
comment
Нет. Можно использовать повторно.   -  person AdhershMNair    schedule 25.05.2017


Ответы (2)


Это должно помочь:

<?php
        $randomstring = 'raabccdegep';
        $arraylist = array("car", "egg", "total");

        foreach($arraylist as $word){
            $checkstring = $randomstring;
            $beMade = true;
            for( $i = 0; $i < strlen($word); $i++ ) {
                $char = substr( $word, $i, 1 );
                $pos = strpos($checkstring, $char);
                if($pos === false){
                    $beMade = false;
                } else {
                    substr_replace($checkstring, '', $i, 1);    
                }
            }
            if ($beMade){
                echo $word . " is possible \n";
            } else {
                echo $word . " is not possible \n";
            }
        }
    ?>
person joshua miller    schedule 25.05.2017
comment
Когда я попробовал это. У меня есть «яйцо возможно». Но, как мне нужно, слово «яйцо» не должно быть возможным. - person AdhershMNair; 25.05.2017

person    schedule
comment
Идеальный. Спасибо. Последние 3 строки должны быть в цикле foreach $arraylist. - person AdhershMNair; 25.05.2017