Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
prof8den37
0 / 0 / 0
Регистрация: 30.08.2013
Сообщений: 25
1

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

05.01.2018, 15:50. Просмотров 88. Ответов 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
Ответы с готовыми решениями:

Нужно получить массив в переменную
Имеется вот такая запись, под названием List.js, почему js? с ним работает...

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

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

Массив: Получить из XML-файла данные элементов <name> и <price> и поместить в массив
Доброго всем времени суток! Ребята, подскажите пожалуйста в вопросе. Есть...

Нужно преобразовать массив ассоциативных массивов в единый ассоциативный массив, а у меня никак не получается
Как преобразовать массив на скрине так, чтобы получился массив: =&gt; FB =&gt;...

1
little endian
-25 / 5 / 5
Регистрация: 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

нужно получить IP сервера
Есть сервер на Windows 8.1 Он работает на lighthttpd нужно получить IP...

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

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


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

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

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