我在一个表中有数据,该表同时包含几行数据。我想创建一个表,其中所有的数据为同一时间显示在同一行,也日期显示在同一行
我的数据现在是这样的
Table Field like
<>之前日期时间产品名称动作2015-08-20上午8:00产品一2015-08-20上午8:00产品二2015-08-20上午8:00产品三2015-08-20下午2:00产品四2015-08-20下午2:00产品五2015-08-20下午2:00产品三之前我希望数据是这样的:
<>之前日期时间产品名称动作产品一个2015-08-20上午8:00产品二印产品三个产品四个2015-08-20下午2:00产品五印产品三个之前谁来帮我找找答案
<>之前$output = ";$getart2 = mysql_query("SELECT * FROM csv WHERE ' date ' = CURDATE() ")");$result_array = array();While ($row = mysql_fetch_assoc($getart2)) {$result_array[] = $row;}一种可能的解决方案是使用数组键对数据进行分组:
$data = array(
array('date' => '2015-08-20', 'time' => '8:00 AM', 'product_name' => 'product one'),
array('date' => '2015-08-20', 'time' => '8:00 AM', 'product_name' => 'product two'),
array('date' => '2015-08-20', 'time' => '8:00 AM', 'product_name' => 'product three'),
array('date' => '2015-08-20', 'time' => '2:00 AM', 'product_name' => 'product four'),
array('date' => '2015-08-20', 'time' => '2:00 AM', 'product_name' => 'product five'),
array('date' => '2015-08-20', 'time' => '2:00 AM', 'product_name' => 'product six')
);
$data2 = array();
foreach($data as $value) {
$key = $value['date'].$value['time'];
if(!isset($data2[$key])) {
$data2[$key] = array('date' => $value['date'], 'time' => $value['time'], 'product_name' => array());
}
$data2[$key]['product_name'][] = $value['product_name'];
}
$output = '<table>';
$output .= '<tr><th>date</th><th>time</th><th>product name</th></tr>';
foreach($data2 as $row) {
$output .= '<tr>';
$output .= '<td>'.$row['date'].'</td>';
$output .= '<td>'.$row['time'].'</td>';
$output .= '<td>'.implode('<br />', $row['product_name']).'</td>';
$output .= '</tr>';
}
$output .= '</table>';
echo $output;