0

继续这个问题

我有这个字符串:

$table_summary = '
    [Category Name 1=>Title x:Description y,Title q:Description n,Title r:Description m,]

    !£|£!

    [Category Name 2=>Title z:Description a,Title j:Description k,Title p:Description f,]

    !£|£!
';

如您所见,字符串中有一个分隔符 as !£|£!,我有 2 个表:

products_spec_subjects
id     product_id     val

products_spec_details
id     title     description    subject_id

我想将提到的字符串存储到这些表中,同时category name将存储到第一个表中,它的标题和描述等详细信息将存储到第二个表中,并将使用 subject_id 作为外键链接到第一个表。

所以毕竟,提到的字符串应该像(ex $product_id=12)一样存储到db中:

products_spec_subjects
1      12      Category Name 1
2      12      Category Name 2


products_spec_details
1    Title x     Description y      1
2    Title q     Description n      1
3    Title r     Description m      1
4    Title z     Description a      2
5    Title j     Description k      2
6    Title p     Description f      2

到目前为止,这是我不完整的代码:

$technical_specifications_arr = explode('!£|£!', $table_summary);
        unset($technical_specifications_arr[count($technical_specifications_arr) - 1]);
        foreach($technical_specifications_arr as $main_value){
            $i = 0;
            $this_arr = explode('=>', $main_value);
            foreach($this_arr as $value){
                $cat_name = substr($this_arr[0], 1);
                $details = substr($this_arr[1], 0, -1);
                    if($i == 0){
                    $tech_main_insert = mysql_query("INSERT INTO products_spec_subjects (product_id, val) VALUES ('$product_id', '$cat_name')") or die(mysql_error());  
                    $this_main_id = mysql_insert_id($link);
                    }
                $i++;
                $another_arr = explode(',', $details);
                unset($another_arr[count($another_arr) - 1]);
                foreach($another_arr as $another_val){

                    $final = explode(':', $another_val);
                    foreach($final as $final_value){
                        // now I can't separate the titles and description here
                    }
                }   
            }   
        }

我很感激任何帮助。

4

1 回答 1

2

您不需要迭代 $final 循环。把你的价值观拉出来:

            foreach($another_arr as $another_val){  
                $final = explode(':', $another_val);                    
                // $final[0] = title
                // $final[1] = desc
                echo $final[0].' - '.$final[1]."<br />\n";
            }
于 2013-06-19T11:31:08.913 回答