#php #html
Вопрос:
array(3) { [20]=gt; string(43) "{"shortname":"testvqweq","fullname":"test"}" [21]=gt; string(51) "{"shortname":"bwqbdwqbwqeb","fullname":"qwbdwqbwq"}" [22]=gt; string(48) "{"shortname":"wqdwqdwqdw","fullname":"dwqwqdwq"}" }
Я хочу получить доступ к короткому имени, полному имени из массива, например: Тест Testvqweqe
Комментарии:
1. Это строки JSON, которые вам нужно будет преобразовать в объект PHP, используя
json_decode()
поиск в руководстве2. Вызов
json_decode()
для декодирования его в ассоциативный массив или объект.3.
json_decode($array[0], true)
4.
$obj = json_decode($array[20]); echo $obj-gt;shortname;echo $obj-gt;fullname;
затем$obj = json_decode($array[21]); echo $obj-gt;shortname;echo $obj-gt;fullname;
Ответ №1:
Вот пример, который, я надеюсь, прояснит для вас ситуацию:
lt;?php $array = [ "20" =gt; '{"shortname":"testvqweq","fullname":"test"}', "21" =gt; '{"shortname":"bwqbdwqbwqeb","fullname":"qwbdwqbwq"}', "22" =gt; '{"shortname":"wqdwqdwqdw","fullname":"dwqwqdwq"}', ]; echo 'lt;pregt;'; print_r($array); foreach($array as $json){ echo 'lt;pregt;'; $j2a = json_decode($json,true); print_r($j2a['shortname']); } $j2a1 = json_decode($array[20],true)['fullname']; /*grab the value in the same line as the json_decode */ echo 'lt;pregt;'; echo "j2a1: "; print_r($j2a1); /* Could have used an echo :) */
Будет возвращать:
Array ( [20] =gt; {"shortname":"testvqweq","fullname":"test"} [21] =gt; {"shortname":"bwqbdwqbwqeb","fullname":"qwbdwqbwq"} [22] =gt; {"shortname":"wqdwqdwqdw","fullname":"dwqwqdwq"} ) testvqweq bwqbdwqbwqeb wqdwqdwqdw j2a1: test
Я специально уменьшил его и не использовал одну строку, чтобы показать, как вы превращаете json в массиве в массив и выводите из него значение, которое вам нравится… и в конце я привел пример однострочника без петли.
Ответ №2:
Вы могли бы просто получить к ним доступ с помощью foreach
foreach(array as arrayIndex) { $shortName = arrayIndex['shortname']; $fullName= arrayIndex['shortname']; }
если вам нужно использовать переменные, вы также захотите выполнить это действие в цикле foreach или, в качестве альтернативы, вы захотите сохранить их за пределами цикла foreach.
глоссарий.