我有两个我希望以某种方式比较的变量。所以我已经想通了,我必须将它放在一个数组中并以这种方式进行比较。但是存在问题。
如果我的输入是'rieebbb',则是随机序列。 我的另一个输入是“啤酒”,啤酒这个词。
如何检查啤酒中的字母是否都在'rieebbb'中并且我都使用过一次? 所以'riebbb'不应该给出肯定答案,因为我在随机序列中错过了'e'。
我已经尝试过array_intersect(),但这并没有完全奏效,因为它没有检查数组1中已经使用过的字母。
答案 0 :(得分:1)
进行频率匹配。将每个字符的出现称为“啤酒”并将其存储在数组A中。
那将是{{b,1},{e,2},{r,1})..
在目标字符串上执行相同操作。
将两个数组比较为数组A中的字母。 那应该解决它。
以下是相同的代码:
<?php
$data = "beer";
$data2="rebe";
$p=0;
$q=0;
$stat=0;
foreach (count_chars($data, 1) as $i => $val)
{
$arr1[$p][0]=chr($i);
$arr1[$p][1]=$val;
$p=$p+1;
}
foreach (count_chars($data2, 1) as $j => $val2)
{
$arr2[$q][0]=chr($j);
$arr2[$q][1]=$val2;
$q=$q+1;
}
for($st=0;$st<$q;$st=$st+1)
{
for($sp=0;$sp<$p;$sp=$sp+1)
{
if($arr2[$st][0]==$arr1[$sp][0])
{
if($arr2[$st][1]<$arr1[$sp][1])
{
$stat=1;
}
}
}
}
if($stat==0)
{
echo "They match";
}
else
{
echo "They dont match";
}
?>