我已经接近我想要的东西了。我遇到了一些逻辑问题,如果结果等于或与所述结果相反,则不显示结果。我正在寻找两个美国州名的字谜,它们是其他两个州名的字谜。我找到了解决方案,现在它真的只是一个显示问题........我想。任何帮助将不胜感激。谢谢你。
<?php
ini_set('max_execution_time', 300);
function anagramOf ($array, $start, $len)
{
global $i;
$word = implode ("", $array);
$i = ++$i;
printf ("%'.-20d%'.20s%s", $i, ucfirst($word), "<BR> \n");
}
function sortstr ($astring)
{
global $word, $s, $l;
$s = strtolower ($astring);
$array = preg_split ('//', $s, -1, PREG_SPLIT_NO_EMPTY);
sort ($array);
$s = implode ("", $array);
}
function search ($aword,$pairs)
{
global $len, $word, $s, $i;
$size = count ($pairs);
for ($k = 0; $k < $size; $k++)
{
$pairs[$k] = chop ($pairs[$k]);
if (strlen ($pairs[$k]) == $len)
{
$l = $pairs[$k];
sortstr ($l);
$ls = $s;
if (!strcmp ($ls, $word))
{
$i = ++$i;
printf ("%'.-20d%'.20s%s", $i, ucfirst ($l), "</br</br>");
}
}
}
}
$states1 = array("Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming");
$states2 = array();
$states2 = $states1;
$pairs = array();
$countS1 = count($states1);
$countS2 = count($states2);
$countPr;
$i=0;
foreach($states1 as $s1array)
{
$j=0;
foreach($states2 as $s2array)
{
$pairs[]=array($s1array => $s2array);
$j++;
}
$i++;
}
$pCountPair = count($pairs);
$newpairs = array();
$l=0;
foreach($pairs as $p => $pairs2)
{
foreach($pairs2 as $name1 => $name2)
{
$newpairs[]=$name1.$name2;;
}
$l++;
}
$p2count = count($newpairs);
#echo 'p2 = '.$p2count.'</br>';
for($r = 0; $r < $p2count; $r++)
{
$word = $newpairs[$r];
echo "Anagrams of <b>".ucfirst ($word)."</b> :\n<BR>\n";
$na = $word;
sortstr ($word);
$word = $s;
$len = strlen ($word);
$i = 0;
search ($word,$newpairs);
}
if ($i == 0)
echo "Can't find any anagram of <B>".ucfirst($na)."</B> in the pairs array.</br></br>";
?>