Задать вопрос
@ALsv32

Как найти в массиве ответа API нужное значение, при том что значение может быть написано в разном регистре?

ТК "Энергия". Запрос на этот адрес (нужен доступ) отдаёт весь ассоциативный массив городов и складов компании "cityList" такого типа:
[3071] => Array
                (
                    [id] => 500009310
                    [name] => Новочеркасск
                    [idCountry] => 86015311036992
                    [isRegionalDelivery] => 
                    [parentId] => -1
                    [description] => РОСТОВСКАЯ ОБЛАСТЬ
                    [type] => 1
                    [defaultIdWare] => 0
                    [warehouses] => Array
В ответе делаю поиск совпадения по ключу [name] чтобы получить значение [id] для последующей работы с ним.
$array = ($obj["cityList"]);
$index=array();
foreach($array as $k => $v)
{
 $index[$v['name']]=$k;
}
$cityid = $array[$index[$name]]["id"];
В качестве искомого значения всегда выступает название населённого пункта. Это название всегда пишется с большой буквы. Всё работает так как нужно ровно до того момента, пока не столкнёшься вот с таким значением в ответе: (искомое слово "Нефтеюганск")
[2801] => Array
                (
                    [id] => 500025228
                    [name] => НефтеЮГАНСК
                    [idCountry] => 86015311036992
                    [isRegionalDelivery] => 
                    [parentId] => -1
                    [description] => Ханты-Мансийский автономный округ
                    [type] => 1
                    [defaultIdWare] => 0
                    [warehouses] => Array

Или вот с таким значением в ответе: (искомое слово "Красноярск")
[2034] => Array
                (
                    [id] => 3912
                    [name] => КрасноЯРСК
                    [idCountry] => 86015311036992
                    [isRegionalDelivery] => 
                    [parentId] => -1
                    [description] => Красноярский край
                    [type] => 1
                    [defaultIdWare] => 20545
                    [warehouses] => Array
.
Можно ли как-то находить нужное значением без привязки к регистру букв? Чтобы при таких "странных" записанных значениях всё равно поиск заканчивался удачно?
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Средний 4 комментария
Ответ пользователя Ипатьев К ответам на вопрос (3)
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых