2012-05-23 96 views
2

是否可以將這種數據從數據庫插入到數組中?用數據庫中的空格插入數據到數組中

Mouse 
Keyboard //Saved from a Textarea box 
Monitor 

整個表看起來像這樣;

id || Owner || Items 
-------------------------- 
1 || John || Mouse 
    ||   || Keyboard //This is in a single row 
    ||   || Monitor 
-------------------------- 

如何將字段「Items」中的每行數據分配到數組中(比如說$ items)?

所以,這將是這樣的:

$items[0] = "Mouse"; 
    $items[1] = "Keyboard"; 
    $items[2] = "Monitor"; 
+0

所以你希望它看起來好像'John'是鼠標,鍵盤的所有者,和監視器,或者他們的鍵盤和鼠標沒有所有者?或者只是有一個項目列表? – Anthony

+0

所有這三項都是約翰,但從來都不是。我已經得到了我的答案。感謝Vishal –

回答

4

嘗試:

$items = explode("\n", $string_from_db); 
+0

正是我想要的。 –

0

這樣的事情?

$arr = explode("\n",$data); // split into lines 
$categories = explode("||",$arr[0]); 
unset($arr[0]); array_values($arr[0]); // dont want categories anymore 
array_walk($categories,create_function('&$v','$v = trim($v);')); // trim space from categories 
$data = array(); // holds info 
foreach((array)$arr as $key=>$val) { 
    if (substr($val,0,5)=="-----") { continue; } // ignore "-----..." lines 
    $row = explode("||",$val); 
    foreach((array)$row as $key2=>$val2) { 
     $data[ $categories[$key2] ][] = trim($val2); 
    } 
} 

echo "<pre>"; 
print_r($data); 
echo "</pre>"; 

與上面的代碼的例子給出了:

Array 
(
    [id] => Array 
     (
      [0] => 1 
      [1] =>  
      [2] =>  
     ) 

    [Owner] => Array 
     (
      [0] => John 
      [1] =>   
      [2] =>   
     ) 

    [Items] => Array 
     (
      [0] => Mouse 
      [1] => Keyboard 
      [2] => Monitor 
     ) 

) 
+0

感謝您的回答,但您爲什麼要在代碼中包含這些行?我向你展示的表是mysql數據庫中的表。這與我的問題無關。如果您誤解,請聯繫。 –

0

如果我正確地讀最後一行,你想:

$results = $db -> query("SELECT Items FROM table"); 

    while($row = $results -> fetch_assoc()) { 
     $items[] = $row['Items']; 
    } 
+0

如果您希望將整個表格作爲數組,則需要規範化數據以清除每個項目的所有權和標識。 – Anthony