2013-07-10 124 views
-1

有以下数据表中的:PHP父/子类别

programgroup,programcode 
"C1","AM" 
"C1","CC" 
"C1","CC" 
"C1","CC" 
"C1","CC" 
"C1","CC" 
"C1","CC" 
"C1","CP" 
"C1","CP" 
"C1","CP" 
"C1","CP" 
"C1","PL" 
"C1","PL" 
"C1","PL" 
"C1","PL" 
"C1","PL" 
"C4","2IC" 
"C4","2IC" 
"C4","2IC" 
"C4","2IC" 
"C4","2IC" 
"C4","AO" 
"C4","AO" 
"C4","AO" 
"C4","IP" 
"C4","IP" 
"C4","PA" 
"C4","PA" 
"C4","PM" 
"C4","PR" 
"C4","PR" 
"C4","SR" 
"C4","WH3" 

我在看数据,并遍历记录,我需要在一个表中插入一个类别为每个ProgramGroup和一个孩子类别具有类别的PARENT_ID它被包含在,即(主要类别将已存在)的ProgramGroup每个的程序代码

category_id, value, parent_id 
0, "MAIN", null 
1, "C1", 0 
2, "AM", 1 
3, "CC", 1 
4, "CP", 1 
5, "PL", 1 
6, "C4", 0 
7, "21C", 6 
8, "AO", 6 
9, "IP", 6 
10, "PA", 6 
11, "PM", 6 
12, "PR", 6 
13, "SR", 6 
14, "WH3", 6 

谁能告诉我如何做到这一点在PHP伪代码?

回答

1

假设你的主阵列是一个数组变量,我们将调用$programscategory_id是自动递增列:

$program_groups = array_keys($programs); // will store as array([0] => C1, [1] => C4) 
$program_codes = array_unique($programs); // will store as array([0] => AM, [1] => CC, [7] => CP, ..) 

foreach($program_groups as $index => $key) { 
    // INSERT INTO table (category_id, value, parent_id) VALUES ($index, $key, '0'); 
} 

foreach($program_codes as $index => $value) { 
    $parent_id = array_search($programs, $index); 
    // INSERT INTO table (value, parent_id) VALUES ($value, $parent_id); 
} 

不过说真的我会寻找其他方式来优化您的原始设置,如果在所有可能。这种设置看起来不自然。