我有来自SQL表的输出:
array{
"data" => "line1
line2
line3"
}
我正在使用类似此查询的内容:SELECT data FROM table WHERE ...;
我可以以某种方式使这个SQL查询返回:
array{
"data1" => "line1",
"data2" => "line2",
"data3" => "line3",
}
答案 0 :(得分:2)
简短的回答是:不,在PHP中做得更好:
list($the_array['data1'], $the_array['data2'], $the_array['data3']) =
explode("\n", $the_array['data'], 3);
答案越长(或越短):请参阅this question of mine并浏览链接。
答案 1 :(得分:1)
我认为这里的主要问题是您将数据存储在数据库中的方式。您真的不想在一个字段中存储多个数据。数据需要更好地规范化,然后您不会首先遇到此问题。查看Database Normalisation。
但如果您不想更改数据结构,可以使用php中的explode函数
$lineArray = explode("\n",$data);
但我建议您仔细查看您正在使用的数据库结构。
答案 2 :(得分:0)
我不知道任何SQL。 替代方案:在PHP中打破。
$arr= explode("\n", $result['data']); // \n or space or \r\n
$i = 0;
foreach($arr as $line){
$i++;
$final[$i] = $line;
}