Парсинг csv

rushsp

Новичок
Добрый день, пишу импорт из csv в базу данных
имеется csv вида
product_id;category_name
1;носки > женские # носки > мужские;
2;трусы > большие;
3;трусы > маленькие;

сдесь то что до "> " это родительская категория а то что дальше это дочерняя, " # " просто разделитель
для того чтобы добавить в базу нужно распарсить так чтобы было понятно какой id у родительской категории чтобы заполнить столбец parent_id
вот и вопрос как это сделать?))

PHP:
 foreach ($csv->data as $key) {
            foreach ($key as $k => $v) {
                if ($k == 'category_name') {
                    $all_cats = explode(" # ", $v);
                    foreach ($all_cats as $subcats) {
                        $all_subcats = explode(" > ", $subcats);
                        $parent_id = 0;
                        foreach ($all_subcats as $subcat) {
                            $subcat_id = -1;
                            if (isset($cats[$subcat])) {
                                $subcat_id = $cats[$subcat]['category_id'];
                             
                            } else {
                                if (!in_array($subcat, $cat_names))
                                    $cat_names[] = $subcat;


                                $subcat_id = $this->db->getLastId();
                            }

                            //echo $subcat_id . "\n";
                           echo  $parent_id = $subcat_id;
                           echo "\n";
                        }
                        //	product_to_categories --> $prod_id, $subcat_id;
                    }
                }
            }
        }
        foreach ($cat_names as $cn) {
            $cat_names_array = array("name"=>$cn);
            $data = array("category_description" => array(1 =>$cat_names_array), "category_store" => array("store_id" => 0));
            //var_dump($data);
             $this->addCategory($data);
        }
 

rushsp

Новичок
у меня получается на выходе после array_unique
1.носки
2.женские
3.мужские
4.трусы
5.большие
6.маленькие
то как вытащить из csv данные я знаю, вопрос именно в том как определить где родитель а где дочерний элемент и добавить в бд с нужным parent_+id
 
Сверху