PHP: Построение древовидных данных в PHP
Недавно, возникла потребность сделать древовидный, порядковый список категорий, в одном из проектов.
2 главных условия, которые соблюдал:
1) в html должны наглядно показываться родительские элементы и их "дети";
2) для всей операции 1 SQL запрос.
SQL-структура была такая:
После запроса в БД массив получился такой.
Для удобной работы я сгруппировал массив по categoryID, заменив его ключи на этот идентификатор.
А вот и сама функция, которая пишет в глобальный массив $g_data результат своей рекурсивной работы.
Остаётся только запустить процесс.
- ---------------------------------------------------------------------------------
- | FIELD | Type | NULL | KEY | DEFAULT | Extra
- ---------------------------------------------------------------------------------
- | categoryID | int(3) | NO | PRI | NULL | AUTO_INCREMENT |
- | parent | int(3) | NO | | 0 | |
- | name | varchar(255) | NO | | NULL | |
- | slug | varchar(255) | NO | | NULL | |
- | pic | varchar(255) | YES | | NULL | |
- ---------------------------------------------------------------------------------
- 5 rows IN SET (0.03 sec)
- Array
- (
- [0] => Array
- (
- [categoryID] => 1
- [parent] => 0
- [name] => Фильмы
- [slug] => films
- [pic] =>
- )
- [1] => Array
- (
- [categoryID] => 2
- [parent] => 0
- [name] => Музыка
- [slug] => music
- [pic] =>
- )
- [...]
- )
- foreach ($data AS $v)
- $array[$v['categoryID']] = $v;
- FUNCTION tree (&$data, $node_id, $lvl = 0)
- {
- switch ($lvl)
- {
- // для каждой категории может быть действие (напр. присвоить id)
- case 0:
- $html = '<option style="font-weight:bolder;" disabled>- КОРЕНЬ -</strong>'."\n";
- break;
- DEFAULT:
- /* str_repeat делает отступ слева, в зависимости от уровня кат-ии. Это наглядно показывает юзеру родителя категории и его дочерний элемент. А если кат-я самая "верхняя", она выделяется стилем font-weight:bold */
- $html = '<option '.($data[$node_id]['parent']==0?'style="font-weight:bold;':'').' value="'.$data[$node_id]['categoryID'].'">'.str_repeat(' ', $lvl) . $data[$node_id]['name'].'</option>'."\n";
- }
- $this->g_data['tree'] .= $html;
- // рекурсия
- foreach ($data AS $row)
- IF ($row['parent'] == $node_id)
- $this->tree($data, $row['categoryID'], $lvl 1);
- }
tree($array, 0);
ErnestFloak 20 августаа в 21:31 #
Полиграфические услуги: печать документов, ксерокопирование, сувенирная продукция Полиграфия услуги офисы и Оперативная печать СЃРїР± работы РЅР° заказ
ErnestFloak 20 августаа в 21:31 #
Полиграфические услуги: печать документов, ксерокопирование, сувенирная продукция Полиграфия услуги офисы и Оперативная печать СЃРїР± работы РЅР° заказ
WalterSop 22 августаа в 20:06 #
Полиграфические услуги: печать документов, ксерокопирование, сувенирная продукция Срочная полиграфия СѓРґРѕР±РЅРѕРµ расположение и Услуги печати копировальные услуги
WalterSop 22 августаа в 20:06 #
Полиграфические услуги: печать документов, ксерокопирование, сувенирная продукция Срочная полиграфия СѓРґРѕР±РЅРѕРµ расположение и Услуги печати копировальные услуги
Jeremytheap 10 сентября в 13:42 #
Balanset-1A: Your Universal Tool for Balancing and Vibration Diagnostics Description: [img]https://vibromera.eu/wp-content/uploads/2023/09/77-e1693745667801.jpg.webp[/img] Order on Amazon Balanset-1A is a portable two-channel device that helps you quickly and accurately balance rotors and analyze vibrations. It is perfectly suited for balancing a wide range of rotating equipment, such as centrifuges, turbines, fans, crushers, augers, pumps, compressors, and other equipment. Features: Vibrometer Mode: Tachometer: Allows for accurate determination of rotor speed (RPM). Phase: Helps determine the phase angle of vibration signals, which is crucial for accurate diagnostics. 1x Vibration: Analyzes the primary harmonic of vibration, which helps detect imbalance. FFT Spectrum: Provides detailed information about the vibration frequency spectrum, allowing for the detection of various issues. Overall Vibration: Monitors the overall vibration level of the machine. Measurement Log: Stores the measurement history for convenient analysis and tracking of changes. Balancing Mode: Single-Plane Balancing: Suitable for balancing simple rotors. Two-Plane Balancing: Eliminates dynamic imbalance. Polar Plot: Visualization of imbalance in the form of a polar plot for accurate weight placement. Session Recovery: Restores the data of the previous session. Tolerance Calculator (ISO 1940): Helps determine the acceptable level of imbalance for your rotor. Grinding Wheel Balancing: Circular groove - used for balancing grinding wheels. In this case, 3 counterweights are used to eliminate the imbalance. Graphs: Overall Vibration Graphs: Displays the overall vibration of the machine in real-time. 1x Vibration Graphs: Shows vibration at the operating rotational frequency. Harmonic Graphs: Shows the presence and impact of harmonic frequencies. Spectral Graphs: Graphical representation of the frequency spectrum for in-depth analysis. Additional Features: Archive: Saves the results of balancing for future use. Reports: Creation of detailed reports on balancing results. Repeat Balancing: Simple repetition of the balancing process using saved data. Production Line Balancing: Optimized for balancing a large number of similar rotors. Balanset-1A also offers flexibility in choosing between metric or imperial unit system, ensuring ease of use anywhere in the world. Price: €1751 Balanset-1A Package Includes: Interface block Two vibration sensors Optical sensor (laser tachometer) with magnetic stand Weighing scales Software (Note: laptop not included, can be ordered separately) Plastic transport case Advantages of Balanset-1A: High Efficiency and Quality: Balanset-1A provides fast and accurate balancing, as well as reliable vibration analysis. Ease of Use: The device is intuitive and easy to master, even for beginners. Customization to Client Needs: Balanset-1A flexibly adjusts to your tasks, allowing you to solve various tasks related to balancing and alignment of different machines and mechanisms. Affordable Price: Balanset-1A is offers an excellent price-quality ratio, making it an ideal option for those who want to get a professional tool at a reasonable price. High Repeatability of Results: The device uses several "know-how" techniques that guarantee reliable and repeatable results, enabling the achievement of ensuring high precision and repeatability of measurements. Conclusion Balanset-1A is a professional solution for balancing and vibration analysis, which will help you increase the reliability and efficiency of your equipment, reduce vibration and noise levels, and prevent accidents. Order on Amazon
Jeremytheap 10 сентября в 13:42 #
Balanset-1A: Your Universal Tool for Balancing and Vibration Diagnostics Description: [img]https://vibromera.eu/wp-content/uploads/2023/09/77-e1693745667801.jpg.webp[/img] Order on Amazon Balanset-1A is a portable two-channel device that helps you quickly and accurately balance rotors and analyze vibrations. It is perfectly suited for balancing a wide range of rotating equipment, such as centrifuges, turbines, fans, crushers, augers, pumps, compressors, and other equipment. Features: Vibrometer Mode: Tachometer: Allows for accurate determination of rotor speed (RPM). Phase: Helps determine the phase angle of vibration signals, which is crucial for accurate diagnostics. 1x Vibration: Analyzes the primary harmonic of vibration, which helps detect imbalance. FFT Spectrum: Provides detailed information about the vibration frequency spectrum, allowing for the detection of various issues. Overall Vibration: Monitors the overall vibration level of the machine. Measurement Log: Stores the measurement history for convenient analysis and tracking of changes. Balancing Mode: Single-Plane Balancing: Suitable for balancing simple rotors. Two-Plane Balancing: Eliminates dynamic imbalance. Polar Plot: Visualization of imbalance in the form of a polar plot for accurate weight placement. Session Recovery: Restores the data of the previous session. Tolerance Calculator (ISO 1940): Helps determine the acceptable level of imbalance for your rotor. Grinding Wheel Balancing: Circular groove - used for balancing grinding wheels. In this case, 3 counterweights are used to eliminate the imbalance. Graphs: Overall Vibration Graphs: Displays the overall vibration of the machine in real-time. 1x Vibration Graphs: Shows vibration at the operating rotational frequency. Harmonic Graphs: Shows the presence and impact of harmonic frequencies. Spectral Graphs: Graphical representation of the frequency spectrum for in-depth analysis. Additional Features: Archive: Saves the results of balancing for future use. Reports: Creation of detailed reports on balancing results. Repeat Balancing: Simple repetition of the balancing process using saved data. Production Line Balancing: Optimized for balancing a large number of similar rotors. Balanset-1A also offers flexibility in choosing between metric or imperial unit system, ensuring ease of use anywhere in the world. Price: €1751 Balanset-1A Package Includes: Interface block Two vibration sensors Optical sensor (laser tachometer) with magnetic stand Weighing scales Software (Note: laptop not included, can be ordered separately) Plastic transport case Advantages of Balanset-1A: High Efficiency and Quality: Balanset-1A provides fast and accurate balancing, as well as reliable vibration analysis. Ease of Use: The device is intuitive and easy to master, even for beginners. Customization to Client Needs: Balanset-1A flexibly adjusts to your tasks, allowing you to solve various tasks related to balancing and alignment of different machines and mechanisms. Affordable Price: Balanset-1A is offers an excellent price-quality ratio, making it an ideal option for those who want to get a professional tool at a reasonable price. High Repeatability of Results: The device uses several "know-how" techniques that guarantee reliable and repeatable results, enabling the achievement of ensuring high precision and repeatability of measurements. Conclusion Balanset-1A is a professional solution for balancing and vibration analysis, which will help you increase the reliability and efficiency of your equipment, reduce vibration and noise levels, and prevent accidents. Order on Amazon
BattlepassAnolo 11 сентября в 13:10 #
BattlePass предлагает разнообразные услуги и функции для пользователей, заинтересованных в популярнейших играх. Zenless Zone Zero, например, выделяется особым вниманием к уникальным игровым механикам и характерным героем, что привлекает многих фанатов жанра. Помимо этого, пользователи могут воспользоваться услугами мобильных игр, таких как PUBG Mobile, где предусмотрены акционные предложения и коды, что делает игру более доступной и увлекательной. Важной частью платформы являются скидки и акции. Для Mobile Legends предусмотрены скидки до 11%, что позволяет игрокам экономить на покупке внутриигровых товаров. Valorant также предлагает пользователям заманчивые условия — скидки на определенные элементы игры могут достигать 12%. Важно отметить, что PUBG Mobile предлагает скидки до 10%, что делает его более привлекательным для поклонников этой вселенной. Пользовательское соглашение делает акцент на правовых аспектах использования сайта BattlePass.ru. Этот документ охватывает все необходимые определения, касающиеся пользователей, регистрации и личных кабинетов. Все действия, совершаемые пользователем, прямо связаны с законностью и безопасностью предоставленных данных. Личный кабинет дает пользователю возможность управлять своим профилем, а также совершать гражданско-правовые сделки с администратором. В плане регистрации на платформе пользователи обязаны предоставить достоверные и актуальные данные, что является залогом безопасности и правильности обработки персональной информации. Это включает в себя уникальные логины и пароли, а также предоставляет ответственность за соблюдение законодательных норм стран проживания. Администратор оставляет за собой право блокировать доступ к аккаунту в случае нарушения правил, что подчеркивает важность соблюдения условий соглашения. Обратите внимание на то, что BattlePass также предлагает до 14% скидок на пополнение кошельков Steam и услуги Blizzard, что дополнительно делает его удобным для пользователей, активно играющих в различные жанры и на разных платформах. Сервисы предоставляют не только доступ к играм, но и позволяют делать переводы, обменивать валюту и пользоваться акциями, что делает игру более доступной. Таким образом, платформа является не только простым доступом к играм, но и целым экосистемой для игрока, обеспечивая все необходимые инструменты для комфортного и выгодного игрового процесса. Скорость обслуживания, разнообразие предложений и удобный интерфейс делают BattlePass привлекательным местом для gamers, которые ищут выгодные условия для своих покупок и взаимодействия с игровыми мирами. пользовательское соглашение
BattlepassAnolo 11 сентября в 13:10 #
BattlePass предлагает разнообразные услуги и функции для пользователей, заинтересованных в популярнейших играх. Zenless Zone Zero, например, выделяется особым вниманием к уникальным игровым механикам и характерным героем, что привлекает многих фанатов жанра. Помимо этого, пользователи могут воспользоваться услугами мобильных игр, таких как PUBG Mobile, где предусмотрены акционные предложения и коды, что делает игру более доступной и увлекательной. Важной частью платформы являются скидки и акции. Для Mobile Legends предусмотрены скидки до 11%, что позволяет игрокам экономить на покупке внутриигровых товаров. Valorant также предлагает пользователям заманчивые условия — скидки на определенные элементы игры могут достигать 12%. Важно отметить, что PUBG Mobile предлагает скидки до 10%, что делает его более привлекательным для поклонников этой вселенной. Пользовательское соглашение делает акцент на правовых аспектах использования сайта BattlePass.ru. Этот документ охватывает все необходимые определения, касающиеся пользователей, регистрации и личных кабинетов. Все действия, совершаемые пользователем, прямо связаны с законностью и безопасностью предоставленных данных. Личный кабинет дает пользователю возможность управлять своим профилем, а также совершать гражданско-правовые сделки с администратором. В плане регистрации на платформе пользователи обязаны предоставить достоверные и актуальные данные, что является залогом безопасности и правильности обработки персональной информации. Это включает в себя уникальные логины и пароли, а также предоставляет ответственность за соблюдение законодательных норм стран проживания. Администратор оставляет за собой право блокировать доступ к аккаунту в случае нарушения правил, что подчеркивает важность соблюдения условий соглашения. Обратите внимание на то, что BattlePass также предлагает до 14% скидок на пополнение кошельков Steam и услуги Blizzard, что дополнительно делает его удобным для пользователей, активно играющих в различные жанры и на разных платформах. Сервисы предоставляют не только доступ к играм, но и позволяют делать переводы, обменивать валюту и пользоваться акциями, что делает игру более доступной. Таким образом, платформа является не только простым доступом к играм, но и целым экосистемой для игрока, обеспечивая все необходимые инструменты для комфортного и выгодного игрового процесса. Скорость обслуживания, разнообразие предложений и удобный интерфейс делают BattlePass привлекательным местом для gamers, которые ищут выгодные условия для своих покупок и взаимодействия с игровыми мирами. пользовательское соглашение
FrankAdord 15 сентября в 05:58 #
Producing small decks in alpine locations calls for a meticulous approach to utilizing space, considering the unusual concerns introduced by the alpine terrain. The method encompasses different strategies, ranging from the selection of space-efficient furnishing to the incorporation of multi-functional elements, all targeted at maximizing the capacity of restricted areas. Engaging in discussions that discuss particular design concepts, creative storage options, and sharing personal success stories transforms into a source of motivation for forum members seeking to maximize their small deck spaces amidst the unique landscapes of highland environments. Picking out efficient furniture remains a fundamental aspect of designing small decks, enabling individuals to make the most of the available area without compromising on function or aesthetics. integrating versatile elements moreover enhances the flexibility of compact deck spaces, providing functional solutions that cater to diverse needs. These approaches jointly contribute to a holistic approach that takes into consideration both the aesthetic appeal and functionality of compact decks in highland regions. Employing in talks that dive into particular design ideas turns into a trigger for creativity, supplying a stage for individuals to share creative notions and solutions tailored to highland environments. The discourse extends to creative storage options, addressing the challenge of restricted space with practical and aesthetically pleasing methods to arrangement. Personal success stories shared within the group turn into precious narratives, illustrating the practicality and potential of optimizing compact deck spaces in the unique context of alpine cities. By using this cooperative return, forum members gain helpful insights and a riches of ideas to apply to their own small deck projects, ensuring that each and every inch of space is carefully used in creating functional, aesthetically pleasing, and effective outdoor living areas in highland settings. Top deck building firms in Fort Collins
FrankAdord 15 сентября в 05:58 #
Producing small decks in alpine locations calls for a meticulous approach to utilizing space, considering the unusual concerns introduced by the alpine terrain. The method encompasses different strategies, ranging from the selection of space-efficient furnishing to the incorporation of multi-functional elements, all targeted at maximizing the capacity of restricted areas. Engaging in discussions that discuss particular design concepts, creative storage options, and sharing personal success stories transforms into a source of motivation for forum members seeking to maximize their small deck spaces amidst the unique landscapes of highland environments. Picking out efficient furniture remains a fundamental aspect of designing small decks, enabling individuals to make the most of the available area without compromising on function or aesthetics. integrating versatile elements moreover enhances the flexibility of compact deck spaces, providing functional solutions that cater to diverse needs. These approaches jointly contribute to a holistic approach that takes into consideration both the aesthetic appeal and functionality of compact decks in highland regions. Employing in talks that dive into particular design ideas turns into a trigger for creativity, supplying a stage for individuals to share creative notions and solutions tailored to highland environments. The discourse extends to creative storage options, addressing the challenge of restricted space with practical and aesthetically pleasing methods to arrangement. Personal success stories shared within the group turn into precious narratives, illustrating the practicality and potential of optimizing compact deck spaces in the unique context of alpine cities. By using this cooperative return, forum members gain helpful insights and a riches of ideas to apply to their own small deck projects, ensuring that each and every inch of space is carefully used in creating functional, aesthetically pleasing, and effective outdoor living areas in highland settings. Top deck building firms in Fort Collins