Ребята, привет. Имеется следующий просенький код: Код (Text): <?php $account = array( 'juno_okyo', 'user1', 'user2', ); if (isset($_GET['key']) && $_GET['key'] != '') { if (in_array($_GET['key'], $account)) { echo 'ok'; } else { echo 'error'; } } exit; ?> Пытаюсь сделать, что бы вместо одномерного массива, был ассоциативный массив типа "ключ => значение" и при вводе GET (ключ) выводилось вместо Код (Text): echo 'ok'; - значение. Спасибо.
Извините, я наверное не правильно выразился или написал не совсем верный код: Код (Text): <?php $account = array( "foo" => "bar", "bar" => "foo", ); if (isset($_GET['key']) && $_GET['key'] != '') { if (in_array($_GET['key'], $account)) { echo $_GET['key']; } else { echo 'error'; } } exit; ?> В данном примере при вводе foo - возвращает - foo, а мне надобно - bar. Foo - в данном случае - ключ.
Ну, а входные данные какие? Что вы гетом передаёте? Что хранит в себе $_GET['key']? Добавлено спустя 2 минуты 26 секунд: извините. затупил. вы же написали всё. Добавлено спустя 2 минуты 59 секунд: Заметьте, вы гетом передаёте значение foo. Т.е. в $_GET['key'] у вас foo. Затем вы это значение ищете в массиве. и если находите - ВЫВОДИТЕ ЕГО ЖЕ. Так почему у вас каким-то чудным образом должно вывести bar?
Получается при помощи php и простого GET невозможно реализовать задуманное? Разобрав пример на одном из сайтов Код (Text): <?php $age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43"); echo "Peter is " . $age['Peter'] . " years old."; ?> я думал можно при помощи GET отправит Peter и получить 35.
Я не сказал, что это невозможно. Добавлено спустя 3 минуты 24 секунды: В общем ладно. Код (PHP): <?php $account = array( "foo" => "bar", "bar" => "foo", ); $key = $_GET['key']; if (isset($_GET['key']) && $_GET['key'] != '') { if (in_array($_GET['key'], $account)) { echo $account[$key]; } else { echo 'error'; } } exit; ?>
mr.akv, Я попробовал слегка изменить ваш код, а именно добавил новые значения в массив и код почему-то уже не работает. Код (Text): <?php $account = array( "test1" => "value1", "test2" => "value2", "test3" => "value3", ); $key = $_GET['key']; if (isset($_GET['key']) && $_GET['key'] != '') { if (in_array($_GET['key'], $account)) { echo $account[$key]; } else { echo 'error'; } } exit; ?> То есть теперь при вводе test1 выводиться Error, вместо value1
Код (Text): if (in_array($_GET['key'], $account)) { вместо поиска проверяйте, задан ли ключ. Код (Text): if (isset($account[$key])) {