Удалить вложенный массив во вложенном foreach PHP - PullRequest
3 голосов
/ 13 января 2020

У меня проблема с представлением данных из базы данных с использованием вложенного foreach. в коде, над которым я работал, мне почти удалось обеспечить вывод данных из базы данных транзакций, как я и ожидал, в виде многомерного массива, который во втором вложенном массиве содержит проданный продукт и удаляет дубликаты данных о проданном продукте.

и моя проблема в том, как удалить или не отображать последний вложенный массив?

это мой код:

    public function resultSetFP()
{
  $this->execute();
  $res = $this->stmt->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_ASSOC);
 foreach($res as $key => $value){
   foreach($value as $v){
      foreach($v as $b){
         $res[$key][$b]=$b;
      }
   }
 }
 return $res;
}

код вывода:

    'P2-6/01/2018/094909/0001' => 
    array (size=5)
      0 => 
        array (size=1)
          'Bid' => string 'Dagadu Bocah' (length=12)
      1 => 
        array (size=1)
          'Bid' => string 'HirukPikuk' (length=10)
      2 => 
        array (size=1)
          'Bid' => string 'HirukPikuk' (length=10)
      'Dagadu Bocah' => string 'Dagadu Bocah' (length=12)
      'HirukPikuk' => string 'HirukPikuk' (length=10)
  'P2-6/01/2018/095825/0002' => 
    array (size=4)
      0 => 
        array (size=1)
          'Bid' => string 'Dagadu' (length=6)
      1 => 
        array (size=1)
          'Bid' => string 'HirukPikuk' (length=10)
      'Dagadu' => string 'Dagadu' (length=6)
      'HirukPikuk' => string 'HirukPikuk' (length=10)

Я ожидал удалить третий вложенный массив, оставив помеченные данные:

    'P2-6/01/2018/094909/0001' => 
        array (size=5)
//removing this array
          0 => 
            array (size=1)
              'Bid' => string 'Dagadu Bocah' (length=12)
          1 => 
            array (size=1)
              'Bid' => string 'HirukPikuk' (length=10)
          2 => 
            array (size=1)
              'Bid' => string 'HirukPikuk' (length=10)
//leaving this
          'Dagadu Bocah' => string 'Dagadu Bocah' (length=12)
          'HirukPikuk' => string 'HirukPikuk' (length=10)

1 Ответ

2 голосов
/ 13 января 2020

Попробуйте это:

foreach ($res as $key => $value) {
    foreach ($value as $i => $v) {
        foreach ($v as $b) {
            $res[$key][$b] = $b;
        }

        unset($res[$key][$i]);
    }
}
...