我有这个字符串:
$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,]
!£|£!
';
如您所见,字符串中有一个分隔符!£|£!
,我有2个表:
products_spec_subjects
id product_id val
products_spec_details
id title description subject_id
我想将提到的字符串存储到这些表中,而category name
将存储到第一个表中,其标题和描述等详细信息将存储到第二个表中,并将链接到第一个表使用subject_id作为外键。
所以,毕竟,提到的字符串应该像(e.x $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
}
}
}
}
我感谢任何帮助。
答案 0 :(得分: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";
}