#php
#php
Вопрос:
У меня есть следующая структура:
Array
(
[signupbasic] => Array
(
[0] => Array
(
[name] => Enter your first name or username
[email] => Enter your email address
[password] => Enter your password
[phone] => Enter your mobile number
[message1] => A text will be send to your phone - reply to validate
[gender] => Array
(
[label] => Gender
[values] => Array
(
[0] => Array
(
[Female] => 1
)
[1] => Array
(
[Male] => 2
)
)
)
[birthday] => Array
(
[label] => Date of birth
[values] => date
)
[message2] => By clicking on "Continue" below you agree to Terms of Service and Privacy Policy
)
)
)
Как вы можете видеть, Gender amp; Birthday — это массивы разных размеров. Я не понимаю, как я могу обойти вышеупомянутую структуру из-за разного размера пола и дня рождения.
Как я могу этого добиться?
Комментарии:
1. Какой код вы использовали для декодирования
JSON
? Поскольку PHP имеет встроенную функцию, вызываемуюjson_decode
начиная с версии 5.2. Взгляните: php.net/manual/en/function.json-decode.php2. Привет, Кевин. Я использовал json_decode. Моя проблема в том, что «пол» и «день рождения» — это массивы разных измерений, поэтому я пытаюсь выяснить, как их проанализировать
3. Я не совсем уверен, что понимаю, о чем вы говорите.. В чем ваша проблема? Почему вы не можете обойти объект?
4. Привет, Кевин. Мне нужен обобщенный код для обхода вышеупомянутого json независимо от размера массива. . Если вы заметили в приведенном выше коде, «пол» и «дата рождения» имеют разные измерения. . Не могли бы вы, пожалуйста, предоставить пример кода для того, как вы будете обходить вышеупомянутый json в PHP
Ответ №1:
Почему бы вам просто не получить доступ к этим значениям по отдельности? Точно так же, как вы, вероятно, сделали с name
, email
и password
.
Пусть $o
будет JSON, а затем сделайте что-нибудь вроде этого:
$data = amp;$o['signupbasic'][0];
$genderObj = $data['gender'];
$birthdayObj = $data['birthday'];
Я не совсем уверен, чего вы пытаетесь достичь, не могли бы вы опубликовать какой-нибудь PHP-код?
Ответ №2:
Я не знаю, понял ли я, что вы имели в виду, но будет ли это что-то вроде этого?
foreach($json['signupbasic'][0]['gender']['values'] as $genderValue) {
foreach($genderValue as $genderKey => $genderSubVal) {
echo $genderKey." ".$genderSubVal."nr";
}
}
foreach($json['signupbasic'][0]['birthday'] as $bdKey => $bdValue) {
echo $bdKey." ".$bdValue."nr";
}
Предполагая, что $json является возвращаемым значением вашего вызова json_decode.
Ответ №3:
Чтобы php понимал json, он должен быть в специальном формате
{
"property1": "value1",
"property2": "value2",
"property3": "value3",
"property4": "value4"
}
смотрите лучшее объяснение на php.net функция json_decode()