rushsp
Новичок
Добрый день, пишу импорт из csv в базу данных
имеется csv вида
product_id;category_name
1;носки > женские # носки > мужские;
2;трусы > большие;
3;трусы > маленькие;
сдесь то что до "> " это родительская категория а то что дальше это дочерняя, " # " просто разделитель
для того чтобы добавить в базу нужно распарсить так чтобы было понятно какой id у родительской категории чтобы заполнить столбец parent_id
вот и вопрос как это сделать?))
имеется 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);
}