首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只显示一次多个数据

只显示一次多个数据
EN

Stack Overflow用户
提问于 2017-06-29 10:48:46
回答 4查看 719关注 0票数 2

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

这很好,不过我想说一次公司的名字。

这是csv

代码语言:javascript
复制
company,value  
company1, 231  
company1, 432  
company1, 876  

如果我将数据foreach到一个表中,我希望只显示一次companyname

代码语言:javascript
复制
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

/T1582-1997商业银行的商业、商业、金融、商业、金融、金融、商业、金融、金融等行业的商业、商业、金融等行业

商业、商业、金融等行业的商业、商业、金融等领域。

对我如何完成这件事有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-06-29 11:14:09

见OP对another answer的评论:

哈哈几乎..。这一定是我的错,因为我解释得不对。有多家公司(当然有)。所以创建一个if语句或者什么的?

因此,我想提出这样的建议:

代码语言:javascript
复制
$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>';

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

代码语言:javascript
复制
Companyname Value
FBI         1
CIA         2
            3
            4
NSA         5
            6
票数 3
EN

Stack Overflow用户

发布于 2017-06-29 10:53:57

您可以使用标志变量这样做。

代码语言:javascript
复制
   $flag=True;
    echo'<table><tr><td>Companyname</td><td>Value</td>';
    foreach ($data as $gegevens){
        $companyname = $gegevens['Companyname'];
        $value = $gegevens['Value'];
    if($flag){
    $flag=false;
        echo '<tr><td>'.$companyname.'</td><td>'.$value.'</td></tr> ';
    }else{
        echo '<tr><td> </td><td>'.$value.'</td></tr> ';
    }
    }   
    echo'</table>';

我想它能解决你的问题。

票数 1
EN

Stack Overflow用户

发布于 2017-06-29 11:07:54

代码语言:javascript
复制
 <?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>';
 ?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44823077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档