用于复制和粘贴的php嵌套数组和对象结构路径

时间:2019-05-27 17:41:46

标签: php drupal

当面对复杂的嵌套php结构时,将路径打印为特定值(用于复制和粘贴)作为有效php代码的便捷方法是什么?

示例: 一大堆的对象拿着数组,拿着其他对象,拿着更多的数组。

$object->third->values[3]['eng']->source->raw->title['html'] =

$ object可以很容易地是print_r()或var_dump()以获得概述。 但是我仍然需要将路径深入到所需的值,以在代码中访问它。 在调试过程中需要花费一些时间才能正确。

1 个答案:

答案 0 :(得分:0)

您可以使用Xpath,它最初是为使用XML而创建的,但是允许通过路径字符串插入对象。

<?xml version="1.0" encoding="UTF-8"?>
<PRODUCTS>
<PRODUCT category="software">
<SKU>soft32323</SKU>
<SUB_CATEGORY>Business Analysis</SUB_CATEGORY>
<NAME>Widget Reporting</NAME>
<PRICE>4500</PRICE>
</PRODUCT>
<PRODUCT category="software">
<SKU>soft32323</SKU>
<SUB_CATEGORY>Business Analysis</SUB_CATEGORY>
<NAME>Pro Reporting</NAME>
<PRICE>2300</PRICE>
</PRODUCT>
<PRODUCT category="storage">
<SKU>soft32323</SKU>
<SUB_CATEGORY>Tape Systems</SUB_CATEGORY>
<NAME>Tapes Abound</NAME>
<PRICE>2300</PRICE>
</PRODUCT>
<PRODUCT category="storage">
<SKU>soft32323</SKU>
<SUB_CATEGORY>Disk Systems</SUB_CATEGORY>
<NAME>Widget100 Series</NAME>
<PRICE>6500</PRICE>
</PRODUCT>
</PRODUCTS>

// SimpleXML中的PHP代码示例

$xml = simplexml_load_file("products.xml");
$products = $xml->xpath("/PRODUCTS/PRODUCT/NAME");
print_r($products);

输出:

Array ( [0] => SimpleXMLElement Object ( [0] => Widget Reporting ) 
[1] => SimpleXMLElement Object ( [0] => Pro Reporting ) [2] => 
SimpleXMLElement Object ( [0] => Tapes Abound ) [3] => 
SimpleXMLElement Object ( [0] => Widget100 Series ) )