【问题标题】:extract php array value提取php数组值
【发布时间】:2014-11-27 21:44:49
【问题描述】:

我有以下数组(使用 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'] 但没有!!!

谢谢。

【问题讨论】:

  • 您可以将print_r(...)与第二个参数$return = true一起使用:<?php $b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z')); $results = print_r($b, true); // $results now contains output from print_r ?>php.net/manual/en/function.print-r.php

标签: php arrays extract


【解决方案1】:

$arraypage 值实际上不是一个数组,而是一个字符串。由于它是 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

【讨论】:

  • 如果您更喜欢将 JSON 解码为关联数组而不是对象,您可以使用 json_decode($array['page'], true);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 2015-05-17
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-18
相关资源
最近更新 更多