Я JSON и PHP noob, и мне нужна помощь! У меня есть json, и вы хотите выполнить поиск с помощью user
_GET и вернуть всю информацию об этом пользователе.
JSON:
{
Shawn Taylor: {
user: "Shawn Taylor",
email: "[email protected]",
phone: "604-123-4567"
},
John Smith: {
user: "John Smith",
email: "[email protected]",
phone: "604-123-4569"
}
ФОРМА:
<form method="get">
<input name="find" />
<button type="submit">Find</button>
</form>
PHP:
if (!empty($_GET['find'])){
$find = ($_GET['find']);
$data_url = 'data.json';
$data_json = file_get_contents($data_url);
$data_array = json_decode($data_json, true);
echo $data_array['user'];
echo $data_array['email'];
echo $data_array['phone'];
Я думал, что это должно сработать, но такой удачи не было. Может ли кто-нибудь помочь?
Вы просто забыли найти его с помощью ключа $find
.
Попробуйте это (посмотрите на 4 последних строки):
if (!empty($_GET['find'])){
$find = ($_GET['find']);
$data_url = 'data.json';
$data_json = file_get_contents($data_url);
$data_array = json_decode($data_json, true);
$user = $data_array[$find];
echo $user['user'];
echo $user['email'];
echo $user['phone'];
}
Вы никогда не используете $ find.
if (isset($data_array[$find])) {
$user = $data_array[$find];
echo $user['user'];
echo $user['email';
}
foreach
упомянутый в заголовке вопросов? не могу увидеть это в коде вы разместили ...foreach
? В вашем PHP вы не используете$find
. Обратите внимание, что у вас есть двумерный массив, а не одномерный.