如何在PHP中拆分数组

问题描述 投票:1回答:4

我有一个数组:

<?php
$biaya=odbc_exec($koneksi,"select * from example");
  $no=0;
  while(odbc_fetch_row($biaya)){
    $no++;
    $sub_title=odbc_result($biaya,"subtitle");
    $title=odbc_result($biaya,"title");
  }
?>

如果我显示循环它将是这样的:

enter image description here

我想根据副标题拆分数组。我想得到这样的数组:

enter image description here

enter image description here

我怎么解决这个问题?

php arrays
4个回答
0
投票
  1. 最好使用一些PHP适配器,如EloquentDoctrine,而不是运行原始查询。
  2. 使用order by。 从副标题的示例顺序中选择*
  3. while循环中,请使用以下技巧。

```

$temp = null;

$result = [];
while(odbc_fetch_row($biaya)) {
   $no++;
   $sub_title=odbc_result($biaya,"subtitle");
   $title=odbc_result($biaya,"title");
   if($temp != $sub_title) {
      $result[$sub_title] = ["no" => $no, "subtitle" => $sub_title, "title" => $title];
      $temp = $sub_title;


   }
   else {
      $result[$sub_title][] = ["no" => $no, "subtitle" => $sub_title, "title" => $title];
   }
}

```


2
投票

你可以这样做: -

$result = [];
foreach ($array as $row){
    $result[$row['subtitle']][] = $row;
}

0
投票

这里是解决方案..你可以看到结果here(update)

我有Inventaris类别的更新

   <?php
$array=array(
array("no"=>"1","subtitle"=>"Perbekalan", "title"=>"lombok ijo"),
array("no"=>"11","subtitle"=>"Perbekalan", "title"=>"lombok asdf"),
array("no"=>"2","subtitle"=>"Perbekalan", "title"=>"bawang abang"),
array("no"=>"3","subtitle"=>"Inventaris", "title"=>"Wajan")
);
echo "<pre>";
//print_r($array);
$Perbekalan=array();
$Inventaris=array();
$i=0;
foreach ($array as $value) {
    if($value['subtitle']=="Perbekalan")
    {
        $Perbekalan[$i]['no']=$value['no'];
        $Perbekalan[$i]['subtitle']=$value['subtitle'];
        $Perbekalan[$i]['title']=$value['title'];
    }
    if($value['subtitle']=="Inventaris")
    {
        $Inventaris[$i]['no']=$value['no'];
        $Inventaris[$i]['subtitle']=$value['subtitle'];
        $Inventaris[$i]['title']=$value['title'];
    }
    $i++;

}
echo "per";
print_r($Perbekalan);
echo "ins";
print_r($Inventaris);
?>

0
投票
<?php
$items=
array(
    array('no'=>"1", 'subtitle'=>"Perbekalan", 'title'=>"lombok ijo"),
    array('no'=>"3",'subtitle'=>"Inventaris", 'title'=>"Wajan"),
    array('no'=>"2",'subtitle'=>"Perbekalan", 'title'=>"bawang abang")
);

foreach($items as $item)
    $output[$item['subtitle']][] = $item;

extract($output);

var_export($Perbekalan);
echo "\n";
var_export($Inventaris);

输出:

array (
    0 => 
    array (
      'no' => '1',
      'subtitle' => 'Perbekalan',
      'title' => 'lombok ijo',
    ),
    1 => 
    array (
      'no' => '2',
      'subtitle' => 'Perbekalan',
      'title' => 'bawang abang',
    ),
  )
  array (
    0 => 
    array (
      'no' => '3',
      'subtitle' => 'Inventaris',
      'title' => 'Wajan',
    ),
  )
© www.soinside.com 2019 - 2024. All rights reserved.