function find_grand_node($tree, $node) { $arr = array(); foreach ($tree as $key => $value) { if (isset($value['id']) && $value['id'] == $node) { $arr = $value; return $arr; } if (isset($value['children']) && is_array($value['children'])) { $temp = find_grand_node($value['children'], $node); if (!empty($temp)) { $arr[] = $temp; } } } return $arr; }
public function get_reply_message() { $data = $this->input->stream(); $messages = $this->message_model->get_all_by_condition(); $new_messages = array(); foreach ($messages as $key => $value) { $new_messages[$value['id']] = $value; } $messages = gen_tree($new_messages, 'pid'); $reply_messages = find_grand_node($messages, $data['id']); if (is_array($reply_messages) && !empty($reply_messages)) { if (!empty($reply_messages['children'])) { die(json_encode(array('code' => 200, 'message' => '获取成功', 'data' => $this->render_html($reply_messages['children'])))); } else { die(json_encode(array('code' => 200, 'message' => '获取成功'))); } } else { die(json_encode(array('code' => 403, 'message' => '获取失败'))); } }
/** * 获取指定栏目集 * * @param $pid 父ID * * return array */ public function get_columns($pid = 0) { $columns = $this->CI->db->order_by('sort asc')->get('column')->result_array(); $new_columns = array(); foreach ($columns as $key => $value) { $new_columns[$value['id']] = $value; } $columns = gen_tree($new_columns, 'pid'); if ($pid == 0) { return $columns; } return find_grand_node($columns, $pid); }