PHP вложенный массив и путь к структуре объекта для копирования и вставки - PullRequest
0 голосов
/ 27 мая 2019

Когда вы сталкиваетесь со сложными вложенными структурами php, какой удобный способ вывести путь к определенному значению - для копирования и вставки - в качестве действительного кода php?

Пример: Большой беспорядок объектов, содержащих массивы, держа другие объекты, держа больше массивов.

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

$ object может легко быть print_r () или var_dump () для обзора. Но мне все еще нужно собрать путь вглубь до желаемого значения, чтобы получить доступ к нему в коде. Что требует времени для отладки во время отладки.

1 Ответ

0 голосов
/ 27 мая 2019

Вы можете делать с 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>

// Пример PHP-кода usin SimpleXML

$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 ) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...