Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP

Войти
Регистрация
Восстановить пароль
 
prof8den37
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 25
#1

Нужно получить массив конкретной категории - PHP

05.01.2018, 15:50. Просмотров 71. Ответов 1
Метки нет (Все метки)

Нужно получить массив конкретной категории
Есть массив, получаем его из БД так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
public function indexAction(Connection $conn)
{
    $users = $conn->fetchAll('SELECT * FROM `categories`');
 
    $cat =[];
    foreach ($users as $item){
        $cat[$item['id']] = $item;
    }
    print_r($cat);//обычный массив 
    $arrAll = $this->getTree($cat);
    print_r($arrAll);//вложенный массив
 
}
 
Array
(
    [1] => Array
        (
            [id] => 1
            [title] => Автомобили
            [parent] => 0
        )
 
    [2] => Array
        (
            [id] => 2
            [title] => Мотоциклы
            [parent] => 0
        )
 
    [3] => Array
        (
            [id] => 3
            [title] => Мазда
            [parent] => 1
        )
 
    [4] => Array
        (
            [id] => 4
            [title] => Хонда
            [parent] => 1
        )
 
    [5] => Array
        (
            [id] => 5
            [title] => Кавасаки
            [parent] => 2
        )
 
    [6] => Array
        (
            [id] => 6
            [title] => Харлей
            [parent] => 2
        )
 
    [7] => Array
        (
            [id] => 7
            [title] => Мазда 3
            [parent] => 3
        )
 
    [8] => Array
        (
            [id] => 8
            [title] => Мазда 6
            [parent] => 3
        )
 
    [9] => Array
        (
            [id] => 9
            [title] => Седан
            [parent] => 7
        )
 
    [10] => Array
        (
            [id] => 10
            [title] => Хечбэк
            [parent] => 7
        )
 
    [11] => Array
        (
            [id] => 11
            [title] => Лодки
            [parent] => 0
        )
 
    [12] => Array
        (
            [id] => 12
            [title] => Лифтбэк
            [parent] => 8
        )
 
    [13] => Array
        (
            [id] => 13
            [title] => Кроссовер
            [parent] => 8
        )
 
    [14] => Array
        (
            [id] => 14
            [title] => Белый
            [parent] => 13
        )
 
    [15] => Array
        (
            [id] => 15
            [title] => Красный
            [parent] => 13
        )
 
    [16] => Array
        (
            [id] => 16
            [title] => Черный
            [parent] => 13
        )
 
    [17] => Array
        (
            [id] => 17
            [title] => Зеленый
            [parent] => 13
        )
 
    [18] => Array
        (
            [id] => 18
            [title] => Мазда CX
            [parent] => 3
        )
 
    [19] => Array
        (
            [id] => 19
            [title] => Мазда MX
            [parent] => 3
        )
 
)
Далее
создание вложенности
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public function getTree($dataset) {
    $tree = [];
 
    foreach ($dataset as $id => &$node) {
        //Если нет вложений
        if (!$node['parent']){
            $tree[$id] = &$node;
        }else{
            //Если есть потомки то перебераем массив
            $dataset[$node['parent']]['childs'][$id] = &$node;
        }
    }
    return $tree;
}
Получается
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
Array
(
    [1] => Array
        (
            [id] => 1
            [title] => Автомобили
            [parent] => 0
            [childs] => Array
                (
                    [3] => Array
                        (
                            [id] => 3
                            [title] => Мазда
                            [parent] => 1
                            [childs] => Array
                                (
                                    [7] => Array
                                        (
                                            [id] => 7
                                            [title] => Мазда 3
                                            [parent] => 3
                                            [childs] => Array
                                                (
                                                    [9] => Array
                                                        (
                                                            [id] => 9
                                                            [title] => Седан
                                                            [parent] => 7
                                                        )
 
                                                    [10] => Array
                                                        (
                                                            [id] => 10
                                                            [title] => Хечбэк
                                                            [parent] => 7
                                                        )
 
                                                )
 
                                        )
 
                                    [8] => Array
                                        (
                                            [id] => 8
                                            [title] => Мазда 6
                                            [parent] => 3
                                            [childs] => Array
                                                (
                                                    [12] => Array
                                                        (
                                                            [id] => 12
                                                            [title] => Лифтбэк
                                                            [parent] => 8
                                                        )
 
                                                    [13] => Array
                                                        (
                                                            [id] => 13
                                                            [title] => Кроссовер
                                                            [parent] => 8
                                                            [childs] => Array
                                                                (
                                                                    [14] => Array
                                                                        (
                                                                            [id] => 14
                                                                            [title] => Белый
                                                                            [parent] => 13
                                                                        )
 
                                                                    [15] => Array
                                                                        (
                                                                            [id] => 15
                                                                            [title] => Красный
                                                                            [parent] => 13
                                                                        )
 
                                                                    [16] => Array
                                                                        (
                                                                            [id] => 16
                                                                            [title] => Черный
                                                                            [parent] => 13
                                                                        )
 
                                                                    [17] => Array
                                                                        (
                                                                            [id] => 17
                                                                            [title] => Зеленый
                                                                            [parent] => 13
                                                                        )
 
                                                                )
 
                                                        )
 
                                                )
 
                                        )
 
                                    [18] => Array
                                        (
                                            [id] => 18
                                            [title] => Мазда CX
                                            [parent] => 3
                                        )
 
                                    [19] => Array
                                        (
                                            [id] => 19
                                            [title] => Мазда MX
                                            [parent] => 3
                                        )
 
                                )
 
                        )
 
                    [4] => Array
                        (
                            [id] => 4
                            [title] => Хонда
                            [parent] => 1
                        )
 
                )
 
        )
 
    [2] => Array
        (
            [id] => 2
            [title] => Мотоциклы
            [parent] => 0
            [childs] => Array
                (
                    [5] => Array
                        (
                            [id] => 5
                            [title] => Кавасаки
                            [parent] => 2
                        )
 
                    [6] => Array
                        (
                            [id] => 6
                            [title] => Харлей
                            [parent] => 2
                        )
 
                )
 
        )
 
    [11] => Array
        (
            [id] => 11
            [title] => Лодки
            [parent] => 0
        )
 
)
зная id к примеру 10 и parent к примеру 7 последней вложенности как получить:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Array
(
    [1] => Array
        (
            [id] => 1
            [title] => Автомобили
            [parent] => 0
            [childs] => Array
                (
                    [3] => Array
                        (
                            [id] => 3
                            [title] => Мазда
                            [parent] => 1
                            [childs] => Array
                                (
                                    [7] => Array
                                        (
                                            [id] => 7
                                            [title] => Мазда 3
                                            [parent] => 3
                                            [childs] => Array
                                                (
                                                
                                                    [10] => Array
                                                        (
                                                            [id] => 10
                                                            [title] => Хечбэк
                                                            [parent] => 7
                                                        )
 
                                                )
 
                                        )
 
                                )
 
                        )
 
                )
 
        )
)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2018, 15:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно получить массив конкретной категории (PHP):

Нужно получить массив в переменную - PHP
Имеется вот такая запись, под названием List.js, почему js? с ним работает другая программаvar shopProducts={ 740:, 840:, 640:, ...

Как получить список директорий в конкретной директории? - PHP
С авторизацией доступа разобрался - PHP был не настроен до конца. Новая проблема - как получить список директорий в конкретной...

Категории, под категории, под под категории, добавление товара - PHP
Не мог бы кто мне помочь с категориями, под категориями и под под категориями. Проблема в том, что в админке сделано добавление товара с...

Нужно преобразовать массив ассоциативных массивов в единый ассоциативный массив, а у меня никак не получается - PHP
Как преобразовать массив на скрине так, чтобы получился массив: => FB => FREE При этом длинна массива массивов изменчива....

нужно получить IP сервера - PHP
Есть сервер на Windows 8.1 Он работает на lighthttpd нужно получить IP сервера. при такой записи echo $ _SERVER (’REMOTE_ADDR’); ...

Нужно получить все имена checked checkbox'ов - PHP
вообщем имеется какое то кол-во checkbox'ов у которых name могу равняться только числам. Причем они могут идти не попорядку, т.е. имени с...

1
little endian
-25 / 5 / 2
Регистрация: 21.12.2017
Сообщений: 59
05.01.2018, 18:13 #2
для начала исправить &$node на $node
в foreach ещё можно использовать, но не когда присваиваются значения

вложенность и деревья проще в БД мутить
но в реляционной, а не мемкешед

а чё в итоге надо получить тут непонятно...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2018, 18:13
Привет! Вот еще темы с ответами:

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

Категории бесконечной вложенности (Вывод определенной родительской категории с дочерними) - PHP БД
Имеется SQL база категорий вида (id,name,subcategory) - Если subcategory=0 то это родительская категория Создание массива: ...

Select [Категории] и [под категории] - PHP БД
Доброго времени суток ув. форумчане. Столкнулся с большой задачей, которую не знаю даже с чего начать писать. В общем я создаю...

Нужно получить json - PHP Сети
Здравствуйте,надо отправить ,например,на страницу http://site.ru/site json. Формат отправки Raw POST. В ответ надо получить json ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru