<?php
$randomstring = 'raabccdegep';
$arraylist = array("car", "egg", "total");
?>
以上$randomstring
是一个包含一些字母的字符串。
我有一个名为$arraylist
的数组,其中包含3个单词,如'car' , 'egg' , 'total'
。
现在我需要检查字符串使用数组中的单词并打印是否可以使用字符串创建单词。 例如,我需要一个类似输出。
car is possible.
egg is not possible.
total is not possible.
另请检查重复的信件。也就是说,beep
也是可能的。因为该字符串包含两个e
。但egg
是不可能的,因为只有一个g
。
答案 0 :(得分:3)
function find_in( $haystack, $item ) {
$match = '';
foreach( str_split( $item ) as $char ) {
if ( strpos( $haystack, $char ) !== false ) {
$haystack = substr_replace( $haystack, '', strpos( $haystack, $char ), 1 );
$match .= $char;
}
}
return $match === $item;
}
$randomstring = 'raabccdegep';
$arraylist = array( "beep", "car", "egg", "total");
foreach ( $arraylist as $item ) {
echo find_in( $randomstring, $item ) ? " $item found in $randomstring." : " $item not found in $randomstring.";
}
答案 1 :(得分:0)
This should do the trick:
<?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";
}
}
?>