文字列関数と多数の if-else を使用すると、これが本当に混乱しますか? 文字列を16進配列に変換するのは別の方法でしょうか? 正規表現が何か関係があるようですか?ここにいる専門家の 1 人が、意味のあることを教えてくれるのではないでしょうか?
可能な $min と $max は常に似ています。
$min は格納された変数です。$max はクライアント入力です。
任意の文字 [az、0-9、AZ]
単一のスペースで区切られた文字のペア。
例: 'p1'、'1 1'、'p1 h11'、'P3 h2'...
望ましい結果: ANY $max >= ANY $min
例:
$minA = 'p1 p2 h3'; $maxA = 'h2'; // false h2<=h3
$minB = '1 2 3'; $maxB = '4'; // true 4>=3
$minC = 'P2 p3'; $maxC = 'p2'; // true p2>=P2
$minD = 'p2 H33'; $max = 'p1 H34 y2'; // true H34>=H33
これがどのように機能したかです---助けてくれてありがとう
$min = 'p1 h3 t3';
$max = 'p1 h2';
echo ratingCheck($max, $min);
function ratingCheck($max, $min)
{
$minRank = strConv($min);
$maxRanks =strConv($max);
foreach ($maxRanks as $letter => $value)
{
echo ($value >= $minRank[$letter]) ? ' true ' : ' false ';
}
}
function strConv($str)
{
$exploded = explode(' ', $str);
foreach ($exploded as $rating)
{
preg_match('`([a-z]+)(\d+)`', $rating, $m);var_dump($m);
list(, $rating_letter, $rating_rank) = $m;
if (!isset($ratings[$rating_letter]))
{
$ratings[$rating_letter] = $rating_rank;
}
else
{
// for $min you should keep the highest value : max()
// for $max you should keep the lowest value : min()
$ratings[$rating_letter] = max($ratings[$rating_letter], $rating_rank);
}
}
return $ratings;
}