首页 > 解决方案 > 合并php重复数据数组

问题描述

我想制作一个像附件一样的表格,有人可以帮我吗?我对如何使表格看起来像图像感到困惑,如果数组内部有一些重复值,我可以删除第二个数据吗?

前:

前

后:

最后结果

这就是我的代码的样子:

<?php

$init_array = array(
    array('kode_pemesanan'=>'FPS26122018001', 
        'nama'=>'bintang', 
        'value1'=>'A Pieu pastel blusher (Shade 1)', 
        'value2'=>'1', 
        'value3'=>'50000', 
        'value4'=> '9000',
        'value5'=> '59000',
    ),
    array('kode_pemesanan'=>'FPS26122018001', 
        'nama'=>'bintang', 
        'value1'=>'A Pieu pastel blusher (Shade 3)', 
        'value2'=>'1', 
        'value3'=>'10000', 
        'value4'=> '9000',
        'value5'=> '59000',
    ),
    array('kode_pemesanan'=>'FPS26122018002', 
        'nama'=>'bintang', 
        'value1'=>'A Pieu pastel blusher (Shade 3)', 
        'value2'=>'1', 
        'value3'=>'10000', 
        'value4'=> '9000',
        'value5'=> '59000',
    ),
);

$formatted_array = array();

foreach($init_array as $element){
    $formatted_array[$element['kode_pemesanan']][] = $element;
}
?>

<table border='2' width="70%" align="center">
 <? foreach($formatted_array as $row ): ?>
   <tr>
     <td rowspan="<?=count($row)?>"><?=$row[0]['kode_pemesanan']?></td>
     <td rowspan="<?=count($row)?>"><?=$row[0]['nama']?></td>
     <? foreach( $row as $value ): ?>
      <td><?=$value['value1']?></td>
      <td><?=$value['value2']?></td>
      <td><?=$value['value3']?></td>
      <td><?=$value['value4']?></td>
      <td><?=$value['value5']?></td>
      </tr><tr>
     <? endforeach; ?>
   </tr>
 <? endforeach; ?>
</table>

标签: php

解决方案


试试看嘛array_unique()

print_r(array_unique($init_array));

所以你可以这样尝试。将此行放在您的数组之后$init_array,它将删除所有重复记录。

$init_array = array_unique($init_array);

让我知道这是否对您有帮助。

试试这个代码然后

<?php
$init_array = array(
array('kode_pemesanan'=>'FPS26122018001', 
    'nama'=>'bintang', 
    'value1'=>'A Pieu pastel blusher (Shade 1)', 
    'value2'=>'1', 
    'value3'=>'50000', 
    'value4'=> '9000',
    'value5'=> '59000',
),
array('kode_pemesanan'=>'FPS26122018001', 
    'nama'=>'bintang', 
    'value1'=>'A Pieu pastel blusher (Shade 3)', 
    'value2'=>'1', 
    'value3'=>'10000', 
    'value4'=> '9000',
    'value5'=> '59000',
),
array('kode_pemesanan'=>'FPS26122018002', 
    'nama'=>'bintang', 
    'value1'=>'A Pieu pastel blusher (Shade 3)', 
    'value2'=>'1', 
    'value3'=>'10000', 
    'value4'=> '9000',
    'value5'=> '59000',
),
);

$formatted_array = array();

foreach($init_array as $element){
$formatted_array[$element['kode_pemesanan']][] = $element;
}
?>

<table border='2' width="70%" align="center">
<?php foreach($formatted_array as $row ): ?>
<tr>
 <td rowspan="<?=count($row)?>"><?=$row[0]['kode_pemesanan']?></td>
 <td rowspan="<?=count($row)?>"><?=$row[0]['nama']?></td>
 <?php foreach( $row as $key => $value ): ?>
  <td><?=$value['value1']?></td>
  <td><?=$value['value2']?></td>
  <td><?=$value['value3']?></td>
  <?php if($key == 0): ?>
  <td rowspan="<?=count($row)?>"><?=$value['value4']?></td>
  <td rowspan="<?=count($row)?>"><?=$value['value5']?></td>
  <?php endif; ?>
  </tr><tr>
 <?php endforeach; ?>
 </tr>
 <?php endforeach; ?>
 </table>

推荐阅读