Php 只显示一次多个数据
我正在基于导入的.csv文件创建一个表 这工作很好,但我想吐出公司名称一次 因此,这是csv:Php 只显示一次多个数据,php,loops,csv,foreach,Php,Loops,Csv,Foreach,我正在基于导入的.csv文件创建一个表 这工作很好,但我想吐出公司名称一次 因此,这是csv: company,value company1, 231 company1, 432 company1, 876 如果我foreach将数据放入表中,我想显示公司名称一次 echo'<table><tr><td>Companyname</td><td>Value</td>'; foreach ($data as $
company,value
company1, 231
company1, 432
company1, 876
如果我foreach
将数据放入表中,我想显示公司名称一次
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>';
echo'CompanynameValue';
foreach($gegevens数据){
$companyname=$gegevens['companyname'];
$value=$gegegevens['value'];
回显“.$companyname.$value.”;
}
回声';
这就是我想要的输出:
[公司名称][价值]
[公司1][231]
[[432]
[][876]
关于如何实现这一点,您有什么想法吗?您可以使用flag变量这样做
$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>';
$flag=True;
回显“公司名称值”;
foreach($gegevens数据){
$companyname=$gegevens['companyname'];
$value=$gegegevens['value'];
如果($flag){
$flag=false;
回显“.$companyname.$value.”;
}否则{
回显“.$value.”;
}
}
回声';
我想它会解决你的问题。
<?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>';
?>
$rows=array();
foreach($gegevens数据){
$companyname=$gegevens['companyname'];
$value=$gegegevens['value'];
回显“.$companyname.$value.”;
if(isset($rows[$companyname])){
$rows[$companyname]。='.$value';
}否则{
$rows[$companyname]='.$companyname.'.$value'.';
}
}
回显“公司名称值”;
回波内爆(“,$行);
参见OP对以下内容的评论:
哈哈,差不多。。。。。这一定是我解释不正确的错。有(不正常的)多家公司。那么创建一个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>';
您能告诉我们所需的输出应该是什么样子吗?@domdom请查看我的更新然后使用您在第一个循环后触发的布尔标志。看见尽管我建议将其命名为比$flag
更有意义的名称。另外,你很可能想检查一下。另外,这里是使用循环的计数器,而不是,如果,这可能不是你想要的,因为你没有计数器,但仍然…和:检查这个可能的重复:我会使用三元来减少它的冗长,但这是风格的问题。然而,以最佳实践的名义,我建议将标志命名为比标志
更有意义的名称。PS:s/thing/think我明白你的想法,但它不起作用。我只显示else值。这就像第一个循环被忽略了一样!将第一个$flag
设置为True请再次检查我修改了它。我只是错过了$flag=True;第一次。哈哈,差不多。。。。。这一定是我解释不正确的错。有(不正常的)多家公司。那么创建一个if语句还是什么?@pAsh绝对正确。然而,看到这是一个表格数据,我会假设它是排序的,或者需要再次打印公司名称(否则,你怎么知道该值属于哪家公司?你会认为它属于你打印的最后一家公司)。最坏的情况是,我们总是可以先对数组排序。换句话说:你所描述的是一个特性而不是一个bug。
$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