2013-03-07 58 views
0

我想就如何協商,最好做到以下幾點:單一的PHP行內關聯數組

我有我想插入我的MySQL數據庫作爲數組一定的首要價值,可以說這是父母。現在

array(parent1,parent2,parent3,parent4); 

,那些父母有一個或多個孩子每個,例如:

parent1 => child1, 
parent2 => child1,child2,child3, 
parent3 => child1, child2, child3 

等...

我就不得不在其中添加父並在此之後的表單一個被添加,你可以添加X個孩子。

那麼最好的辦法是處理這種情況,我想這將需要一個關聯數組,可能有人請給我一個建議,使用PHP和MySQL。

+0

GROUP_CONCAT可以在mysql中做到這一點,但至少發佈一些相同的數據和模式,讓別人嘗試 – 2013-03-07 11:00:25

+3

不要這樣做....否則,你問的下一個quastion將是如何使用部分條目上的匹配進行搜索 - normalize你的數據庫 – 2013-03-07 11:06:28

+0

你是什麼意思歸一化? – durian 2013-03-07 11:20:25

回答

0

你可以讓一個數組,看起來像這樣:

$arr = array(
    'parent1' => array('child1'), 
    'parent2' => array('child1', 'child2'), 
    'parent3' => array('child1', 'child2', 'child3') 
); 
// Debugging... 
var_dump(array_keys($arr)); // These are the parents 
var_dump(array_values($arr)); // And these are their children 

然後插入:

var_dump('INSERT INTO `parents` (`name`) VALUES ("'.implode('"), ("', array_keys($arr)).'");'); // These are the parents 
foreach ($arr as $parent => $children) 
    var_dump('INSERT INTO `children` (`parent_name`, `name`) VALUES ("'.$parent.'", "'.implode('"), ("'.$parent.'", "', array_keys($children)).'");'); // These are the children 

變化var_dump()您用來運行查詢相應的方法。