AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"

Как проверить большой массив?

Есть, json файл, где много много юзеров, там есть строки пароля, емэйла. Выглядит примерно так:
{
"uid":"1000", 
"name":"email@milo.com", 
"pass": "321"
}
{
"uid":"1001", 
"name":"email3@milo.com", 
"pass": "123"
}

Как при авторизации перебирать весь этот массив на проверку совпадения email и пароля?
  • Вопрос задан
  • 879 просмотров
Пригласить эксперта
Ответы на вопрос 5
sergiks
@sergiks Куратор тега PHP
♬♬
PHP может прилечь на этапе json_decode(), если json файл окажется слишком большим.

Поэтому лучше один раз перевести все данные во что-то подходящее для задачи: в MySQL, Mongo, Elasticsearch или что-то ещё.

Адский велосипед, это читать json-файл построчно и парсить вручную, без json-decode. Спасёт от нехватки памяти, будет медленно и со скрипом.
Ответ написан
Комментировать
@dilshod_developer
Можно использовать array_filter
Ответ написан
Комментировать
PyroRed
@PyroRed
php разработчик
На самом деле, если файл очень большой и имеет регулярную структуру, то можно воспользоваться системной командой grep
Ответ написан
Комментировать
@denisovvsh
У вас не массив, а объект, т.к. скобки {}, в массиве скобки []. Можно, попробовать воспользоваться функцией Array.prototype.find()
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Конечно, лучше использовать БД.
Небезопасно в таком виде хранить пароли от учеток.
Ответ написан
Комментировать
danial72
@danial72
flutter dart.
у вас 2 пути :
1) использовать json encode функцию- парсим файл этой функцией.
, перебираем объекты и находим нужный объект.
2) построково считывать файл, и искать вхождения логина, затем определять строку в которой находится пароль и проверять

но самое разумное перебраться на базы данных. Если важно сделать на файлах : sqlite
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽