仅显示一次多个数据

时间:2017-06-29 10:48:47

标签: php loops csv foreach

我正在根据导入的.csv文件创建一个表。

这很好,但是我想吐一次公司名称。

所以这是 csv

company,value  
company1, 231  
company1, 432  
company1, 876  

如果我foreach将数据放入表中,我想要显示companyname一次。

echo'<table><tr><td>Companyname</td><td>Value</td>';
foreach ($data as $gegevens){
    $companyname = $gegevens['Companyname'];
    $value = $gegevens['Value'];
    echo '<tr><td>'.$companyname.'</td><td>'.$value.'</td></tr> ';

}   
echo'</table>';

这就是我想要的输出:
[公司名称] [价值]
[公司1] [231]
[] [432]
[] [876]

有关如何实现这一目标的任何想法?

4 个答案:

答案 0 :(得分:3)

请参阅OP对another answer的评论:

  哈哈几乎......因为没有正确解释,这一定是我的错。有(当然)有多家公司。那么创建一个if语句还是什么?

因此,我会建议这样的事情:

$data = array(
    array('Companyname' => 'FBI', 'Value' => '1'),
    array('Companyname' => 'CIA', 'Value' => '2'),
    array('Companyname' => 'CIA', 'Value' => '3'),
    array('Companyname' => 'CIA', 'Value' => '4'),
    array('Companyname' => 'NSA', 'Value' => '5'),
    array('Companyname' => 'NSA', 'Value' => '6'),
);

$last_company = ""; // What was the last company we printed?

echo'<table><tr><td>Companyname</td><td>Value</td>';
foreach ($data as $gegevens){
    $companyname = $gegevens['Companyname'];
    $value = $gegevens['Value'];
    if ($companyname == $last_company) {
        echo '<tr><td></td><td>'.$value.'</td></tr>';
    } else {
        echo '<tr><td>'.$companyname.'</td><td>'.$value.'</td></tr>';
        $last_company = $companyname;
    }
}
echo'</table>';

这将生成以下输出(使用浏览器查看时):

Companyname Value
FBI         1
CIA         2
            3
            4
NSA         5
            6

答案 1 :(得分:1)

你可以使用flag变量这样做。

var Associates mongoose.model('Associates', associatesSchema);    
var AssociatesInfo mongoose.model('AssociatesInfo', associatesInfoSchema);

var associate = new Associates();
associate.name = new Name();

我认为它会解决你的问题。

答案 2 :(得分:1)

 <?php 
 $data = array(

    array('Companyname' => 'Company', 'Value' => '10'),
    array('Companyname' => 'Company1', 'Value' => '10'),
    array('Companyname' => 'Company1', 'Value' => '10'),
    array('Companyname' => 'Company2', 'Value' => '10'),
 ); 

 $newdata = array();

 foreach ($data as $gegevens){
    $newdata[$gegevens['Companyname']][] = $gegevens['Value']; 
 }

 echo'<table><tr><td>Companyname</td><td>Value</td>';
 foreach($newdata as $company => $values) {
    echo '<tr><td>'.$companyname.'</td><td>'.implode('<br>' ,$values).'</td></tr> ';
}
echo'</table>';
 ?>

答案 3 :(得分:0)

$rows = array();
foreach($data as $gegevens) {
    $companyname = $gegevens['Companyname'];
    $value = $gegevens['Value'];
    echo '<tr><td>'.$companyname.'</td><td>'.$value.'</td></tr> ';
    if(isset($rows[$companyname])) {
        $rows[$companyname] .= '<tr><td>&nbsp;</td><td>'.$value.'</td></tr> ';
    } else {
        $rows[$companyname] =  '<tr><td>'.$companyname.'</td><td>'.$value.'</td></tr> ';
    }
}
echo'<table><tr><td>Companyname</td><td>Value</td>';
echo implode("",$rows);