使用两个array_column的内爆数组

时间:2017-02-01 06:07:54

标签: php

我有一个像这样的查询的结果:(在PHP中,我分配给$ arr_permasalahan)

+--------------+---------------------+
| total_detail | nama_detail         |
+--------------+---------------------+
|            2 | Create Email Baru   |
|            1 | Create Login Novell |
+--------------+---------------------+

现在我想要破坏他们,就像这样:

Create Email Baru  : 2 pcs,
Create Login Novel : 1 pcs

所以,我决定像这样使用array_column:

 $output =  implode("\n", array_column($arr_permasalahan, 'nama_detail'));

我得到了

"Create Email Baru\nCreate Login Novell"

请告知。

4 个答案:

答案 0 :(得分:2)

尝试使用这样,它可能有帮助..!我认为没有必要在这个

中使用implode
     $line = "";
     foreach($arr_permasalahan as $line)
     echo "".$line[' nama_detail']." : ".$line['total_detail']." pcs"; 

答案 1 :(得分:1)

试试这个解决方案

foreach($arr_permasalahan as $permasalahan)    
{
      echo "".$permasalahan['nama_detail']." : ".$permasalahan['total_detail']." pcs"."<br>";     
}

答案 2 :(得分:1)

你可以试试这个:

$elemet=implode("<br>",array_map(function($x){
    return $x['nama_detail'].":".$x['total_detail']." pcs";
},$arr_permasalahan));
echo $elemet;

注意: @Sougata Bose在评论中建议的内容将是最佳选择。

答案 3 :(得分:1)

您可以使用impload()

来压缩数组值

下面的代码将完全满足您的要求

$arr = array(1 => array('total_detail' => 2, 'nama_detail' => 'Create Email Baru'), 2 => array('total_detail' => 1, 'nama_detail' => 'Create Login Novell'));

  foreach ($arr as $i => $v) {
    $ss['nama_detail'] = $v['nama_detail'];
    $ss['total_detail'] = $v['total_detail'].' pcs';
    echo implode("':'",$ss)."' pcs<br>";
  }

实际上你的结果数组是多级数组(2d-array),impload()适用于单级数组,因此你必须放置一个foreach循环。 查看您所需的result here