работа со сложными массивами других программистов на PHP - PullRequest
3 голосов
/ 07 ноября 2010

Я поддерживаю OO PHP-приложение, которое загружает все в $ этот массив. Когда я делаю дамп переменной $ this, чтобы узнать, как получить доступ к значению, я получаю десятки страниц вывода. Поиск нужных мне элементов массива занимает очень много времени

Например, если я хочу узнать, где хранится территория клиента, мне нужно выяснить иерархию массива, используя print_r или var_dump и начиная с [ edit: and search]] на выходе до Я выясняю путь.

например: $ this-> Billing-> Cst-> Record ['Territory']

Есть ли лучший способ сделать это, или некоторые инструменты / методы, которые я могу использовать. Например, есть ли быстрый способ найти путь к переменной ['Territory'] по всему массиву напрямую?

Ответы [ 4 ]

4 голосов
/ 07 ноября 2010

Krumo - графический инструмент var_dump, который может немного облегчить навигацию.Ознакомьтесь с разделом «примеры» на странице проекта.

Для поиска в многомерных массивах этот вопрос SO может вам помочь.

1 голос
/ 07 ноября 2010
<code>function findInTree($var, $words) {
    $words = explode(' ', strtolower($words));
    $path = array();
    $depth = 0;
    $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($var), RecursiveIteratorIterator::SELF_FIRST);
    foreach ($iterator as $key => $value) {
        if ($iterator->getDepth() < $depth) {
            unset($path[$depth]);
        }
        $depth = $iterator->getDepth();
        $path[$depth] = $key;

        if (is_string($key) && in_array(strtolower($key), $words)) {
            echo '<pre>', implode(' -&gt; ', $path), '
'; } } } findInTree ($ this, «Территория клиента»);

Эта функция будет проходить через ваш объект и искать любое из заданных слов в качестве ключа.

1 голос
/ 07 ноября 2010

Вы могли бы, вероятно, сделать ctr + F на выходе вместо того, чтобы пялиться на него?

Просто начните с ctr + F: "Клиент", "Территория" и все другие имена, связанные с тем, что вы ищете.

0 голосов
/ 07 ноября 2010

FirePHP/Firebug может дать вам подробное структурное представление $this и его свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...