У меня есть список вложенных элементов (категорий), которые я хотел бы реорганизовать, путем упорядочения и глубины вложенности. Я попытаюсь объяснить:Как изменить порядок вложенных элементов в PHP?
Когда я отправить форму с JQuery, нажав на синюю кнопку SAVE, он обрабатывает функцию внутри models/categories_model.php
:
public function organize($items){
if(count($items)){
foreach($items as $order => $item){
if($item['item_id'] != ''){
echo '<pre>'.$order.'</pre>';
$data = array(
'pid' => (int) $item['parent_id'],
'ordering' => $order
);
$this->db
->set($data)
->where($this->_primary_key, $item['item_id'])
->update($this->_table_name);
}
}
}
}
Это экономит этот список, как это:
1
2
3
4
5
6
7
8
9
10
Вместо того, чтобы сохранять его следующим образом:
1
1
2
3
4
2
1
2
3
1
2
1
2
3
3
Вместо того, чтобы $order
значение один за другим, он должен принять в счет его вложенных элементов и начать отсчет $order
с 1, а не продолжая подсчетом от его родительский элемент.
Так что, когда я сохранить его, я хочу, чтобы они были заказаны, как это, но не знаю, как это сделать:
Кто-то знает, как заставить его работать с вложенными вещи, PLS?
проверит, что теперь, благодаря – aspirinemaga
@aspirinemaga Я обновил свой код - изменили неправильные ключи ($ пункт [ «PID»], чтобы $ пункт [ 'parent_id']). –
Да! Это работает Дмитрий, спасибо тебе! Я постараюсь лучше понять, что вы там сделали. Кстати, вы закрыли 'if (! Isset ($ orderByPid [$ item ['parent_id']]) {' – aspirinemaga