2012-05-23 72 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