Извлечь значение массива php

У меня есть следующий массив (выставлен с помощью var_dump).

array (size=3)
    'auth' => string 'debug' (length=5)
    'url' => string 'http://X.X.X.X/status.cgi?' (length=31)
    'page' => string '{ "host": {   "uptime": 1543,     "time": "2011-07-26 12:07:40",  "fwversion": "v1.1.1",  "hostname": "ASDASDASD",    "netrole": "DFDFDF"  },  "lan": {   "status": [{ "plugged": 1, "speed": 100, "duplex": 1 }],    "hwaddr": "00:00:22:11:11:11",  "ip": "",   "rx": { "bytes": 5988, "packets": 83, "errors": 0 },    "tx": { "bytes": 9496, "packets": 120, "errors": 0 }  },  "wan": {  "status": [],   "hwaddr": "00:00:00:00:00:00",  "ip": "",   "rx": { "bytes": 0, "packets": 0, "errors": 0 },    "tx": { "bytes": 0, "packets"'... (length=1779)

Мне нужно извлечь информацию из WAN, как IP или RX...

Я пытался использовать $array['page']['wan']['rx'], но ничего!!!

Благодарю.

1 ответ

page ценность вашего $array на самом деле это не массив, а строка. Так как это строка JSON, вы должны использовать json_decode чтобы декодировать строку в значимый формат для PHP, чтобы обрабатывать:

$page = json_decode($array['page']);
$pageArray = json_decode($array['page']); // Returned as an array

И чтобы получить RX, например:

var_dump($page->wan->rx); // Returned as an object
var_dump($pageArray['wan']['rx']); // Return as an array
Другие вопросы по тегам