Создать вложенный список из многомерного массива с несколькими ключами

0

Мне нужно создать список из этого массива

 [records] => Array
    (
        [0] => Array
            (
                [id] => 665
                [productGroupID] => 665
                [name] => AUDIO/VIDEO VALDKOND
                [showInWebshop] => 1
                [positionNo] => 619
                [added] => 1362673935
                [lastModified] => 1364198793
                [subGroups] => Array
                    (
                        [0] => Array
                            (
                                [id] => 557
                                [productGroupID] => 557
                                [name] => VIDEO
                                [showInWebshop] => 1
                                [positionNo] => 1229
                                [added] => 1361340146
                                [lastModified] => 1362131355
                                [subGroups] => Array
                                    (
                                        [0] => Array
                                            (
                                                [id] => 565
                                                [productGroupID] => 565
                                                [name] => TELERID
                                                [showInWebshop] => 1
                                                [positionNo] => 642
                                                [added] => 1361340916
                                                [lastModified] => 1397208602
                                                [subGroups] => Array
                                                    (
                                                        [0] => Array
                                                            (
                                                                [id] => 269
                                                                [productGroupID] => 269
                                                                [name] => Teler kuni 15"
                                                                [showInWebshop] => 1
                                                                [positionNo] => 1454
                                                                [added] => 1361281340
                                                                [lastModified] => 1363594045
                                                                [subGroups] => Array
                                                                    (
                                                                    )

                                                            )

                                                        [1] => Array
                                                            (
                                                                [id] => 500
                                                                [productGroupID] => 500
                                                                [name] => Teler 19-29"
                                                                [showInWebshop] => 1
                                                                [positionNo] => 1459
                                                                [added] => 1361284369
                                                                [lastModified] => 1379684581
                                                                [subGroups] => Array
                                                                    (
                                                                    )

                                                            )

                                                        [2] => Array
                                                            (
                                                                [id] => 509
                                                                [productGroupID] => 509
                                                                [name] => Teler 32"
                                                                [showInWebshop] => 1
                                                                [positionNo] => 1460
                                                                [added] => 1361284370
                                                                [lastModified] => 1363594480
                                                                [subGroups] => Array
                                                                    (
                                                                    )

                                                            )



                                                    )

                                            )

как я могу удалить все значения рядом с productGroupID и именем?

что я сделал sofar

function list($element){
    foreach($element as $value){
        if(!is_array($value)){
            echo "<li>";
            echo $value;
        }else{
            echo "<ul>";
            r($value);
            echo "</li>";
            echo "</ul>";
        }
    }
}

echo "<ul>";
echo list($output['records']).";
echo "</ul>";

это печатает все значения. я не могу понять, как печатать только 2 необходимые значения каждой подматрицы

  • 0
    Вы хотите сохранить свои подгруппы в качестве подсписка основного списка, или вы просто хотите напечатать список одного уровня, который содержит все идентификаторы и имена productGroupId ? Одна важная вещь, я думаю, вы должны изменить имя своей функции, потому что list() является языковой конструкцией.
  • 0
    marian0 Я хочу, чтобы все подгруппы были такими же, как и в массиве s, который я знаю о list (), просто изменил имя функции, потому что это было просто l перед публикацией :)
Теги:
arrays
multidimensional-array

1 ответ

0

Вы должны перебирать массивы массивов. Тогда все, что вам нужно сделать, это распечатать информацию, которая вам нужна, и проверить, нет ли пустого подмассива. Если это так, вызовите рекурсивно снова функцию списка. Ниже приведен пример рабочего кода. Вы по-прежнему передаете $output['records'] этой функции в качестве аргумента.

function list_elements($elements) {
    echo '<ul>';
    foreach ($elements as $element) {
        echo '<li>';
        echo $element['productGroupID'] . ':' . $element['name'];
        if (!empty($element['subGroups'])) {
            list_elements($element['subGroups']);
        }
        echo '</li>';
    }
    echo '</ul>';
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню