У меня есть функция поиска на моей странице, где пользователь может искать состояния США, чтобы найти свойство. Тем не менее, в моей записи базы данных сокращение было указано только для каждого имени состояния. Поэтому я загружаю копию американских штатов в формате списка массивов.PHP in_array соответствует значению поиска в списке массивов
Код Рис 1
$searchStates = array(
'Alabama' =>'AL',
'Alaska' =>'AK',
'Arizona' =>'AZ',
'Arkansas' =>'AR',
'California' =>'CA',
'Colorado' =>'CO',
'Connecticut' =>'CT',
'Delaware' =>'DE',
'Florida' =>'FL',
'Georgia' =>'GA',
'Hawaii' =>'HI',
'Idaho' =>'ID',
'Illinois' =>'IL',
'Indiana' =>'IN',
'Iowa' =>'IA',
'Kansas' =>'KS',
'Kentucky' =>'KY',
'Louisiana' =>'LA',
'Maine' =>'ME',
'Maryland' =>'MD',
'Massachusetts' =>'MA',
'Michigan' =>'MI',
'Minnesota' =>'MN',
'Mississippi' =>'MS',
'Missouri' =>'MO',
'Montana' =>'MT',
'Nebraska' =>'NE',
'Nevada' =>'NV',
'New Hampshire' =>'NH',
'New Jersey' =>'NJ',
'New Mexico' =>'NM',
'New York' =>'NY',
'North Carolina' =>'NC',
'North Dakota' =>'ND',
'Ohio' =>'OH',
'Oklahoma' =>'OK',
'Oregon' =>'OR',
'Pennsylvania' =>'PA',
'Rhode Island' =>'RI',
'South Carolina' =>'SC',
'South Dakota' =>'SD',
'Tennessee' =>'TN',
'Texas' =>'TX',
'Utah' =>'UT',
'Vermont' =>'VT',
'Virginia' =>'VA',
'Washington' =>'WA',
'West Virginia' =>'WV',
'Wisconsin' =>'WI',
'Wyoming' =>'WY'
);
Корпус:.
Мои клиенты используют для поиска название штата, ex: Tennessee
но в моем результате, он будет отображать Нет записи из-за аббревиатуры только был сохранен в моей базе данных. Я хотел бы использовать этот список массивов $searchStates
в соответствии с моим сокращенным списком состояний. Я попытался использовать функцию in_array
, но кажется, что она работает неправильно. Посмотрите мой фактический код.
код Рис. 2
if (in_array($search, $searchStates)) {
$property->where(function($query) use ($search) {
$query->where('property.state','like','%'.$search.'%')
->orWhere('property.contact_name','like','%'.$search.'%')
->orWhere('property.address','like','%'.$search.'%')
->orWhere('property.city','like','%'.$search.'%')
->orWhere('property.name','like','%'.$search.'%');
});
}
Гол
Я хотел бы использовать $searchStates
список, чтобы соответствовать моей записи в базе данных (которая в формате аббревиатур штатов США) и дисплей правильный вывод на моей странице результатов поиска.
Вопрос
Была ли эта in_array
функция будет работать, или я должен использовать другую функцию? Буду признателен за вашу помощь.
Поделитесь полным кодом «Код Рис.2»? – C2486
'if (isset ($ searchStates [$ search])) { $ search = $ searchStates [$ search];' – splash58
Можете ли вы не обновлять свою таблицу db с полными именами или даже создавать новую таблицу и присоединяться к сокращению – RamRaider