Cách đánh số thứ tự nhiều lớp trong vòng lặp đệ quy với Laravel

post-title

Cách đây khoản 2 năm trước mình cũng có câu hỏi này trên group nhưng mà không tìm được câu trả lời cho mình cuối cùng phải về tự mò mà suy tư để có thể làm được ra như này.

Rồi vậy cái đánh số thứ tự nhiều lớp là sao.

Như này một ngày đẹp trời không trăng nhưng có mây, thì sếp mới bảo là viết 1 cái chức năng để làm báo giá trên CRM của công ty thì nhưng mà nó có cái kiểu đánh số như sau:

1. Danh mục chính 1

1.1 Danh mục lv2

1.1.1 Danh mục lv3

1.1.1.1 danh mục lv4

1.2 Danh mục lv2

2. Danh mục chính 2

2.1 ......

so thu tu de quy 2
 

Đấy kiểu là số thứ tự sẽ được đánh theo lớp theo từng cấp của cái đệ quy như này.

Mình tháo thức tra google đi hỏi các kiểu mà không ra nên cuối cùng phải mò mẫm thì cũng không ra chỉ ra được những cái như là $loop->depth, $loop->parent với $loop->iteration

Thì cuối cùng lúc đó mình cũng viết tạm như cái củ cải phía dưới này.

so thu tu de quy 1
Nhìn là thấy NGU vãi rồi. Nhưng mà thôi kệ cứ làm để chạy deadline đã rồi tính tiếp

Rồi như cái trên ngồi bình tâm suy nghĩ vài đêm thao thức mình đã ra được 1 cái function như sau:

 function iteration_loop($loop)
    {
        $string = $loop->iteration;
        $get_loop = $loop;
        for ($i =  2; $i <= $loop->depth; $i++) {
            $get_loop = $get_loop->parent;
            $string = $get_loop->iteration.'.'.$string;
        }

        return $string;
    }

Thì đó đây là cách mình đã làm để giải quyết vấn đề.

Nếu các bạn có cách giải quyết tốt hơn có để để lại phía dưới comment cho mình nha :D

icon Subscribe

to Our Newsletter