У меня есть хэш-карта, которая содержит определенные ключи, которые являются отсортированными версиями их значений. Например,Сравнение строк PHP, === или strcmp не работает
$hash = array("abc" => "cab",
"aas" => "sas"
);
У меня есть массив отсортированных строк ($ sorted_words), и я хочу, чтобы сравнить все эти строки с ключами выше хэш-карты, и если совпадение найдено, сохранить соответствующее значение в строка. Я использую ===, а также strcmp(), но не работает. Он всегда говорит, что строки не совпадают. Вот мой код:
foreach($sorted_words as $sc) {
foreach($hash as $key => $value) {
if(strcmp($sc, $key) == 0) { // or if($sc === $key)
$string_match .= $value; // store the corresponding value for the matched key.
}
}
}
Но сравнение терпит неудачу как STRCMP() всегда возвращает больше 1 и «===» никогда не возвращает так. Кто-нибудь может сказать, что случилось? Я уверен, что будут строки, которые будут соответствовать.
Попробуйте echo $ sc. '==' $ key; Что это печатает? Соответствуют ли строки? – cartina
как 'sas' sorted' aas' должно быть 'ass' – DevZer0
Сравнение строк PHP, === или strcmp **, по-видимому, работает **. Хотя какой бы ни был ваш код –