Как я могу получить доступ к этому строковому значению массива php

#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.

глоссарий.