PHP добавляет массив в другой массив auto $key с foreach

Я пытаюсь управлять добавлением одного массива в другой массив, но это не работает. Извините, если вопрос уже был задан (но я не могу найти его в stackru).

Вот что я пытаюсь сделать:

$this->dataSector[0] = array('Secteur' => "S1",
                             'UL'      => intval($this->ulSecteur1),
                             'DL'      => intval($this->dlSecteur1),
                             'details' => [array('MAC' => $this->mac,
                                                 'UL'  => intval($this->ultransrate),
                                                 'DL'  => intval($this->dltransrate)
                                                      )]
                       );
$this->dataSector[1] = array('Secteur' => "S2",
                                 'UL'      => intval($this->ulSecteur1),
                                 'DL'      => intval($this->dlSecteur1),
                                 'details' => [array('MAC' => $this->mac,
                                                     'UL'  => intval($this->ultransrate),
                                                     'DL'  => intval($this->dltransrate)
                                                          )]
                           );

Еще одна попытка:

$this->dataSector[0] = array('Secteur' => "S1",
                             'UL'      => intval($this->ulSecteur1),
                             'DL'      => intval($this->dlSecteur1),
                             'details'[] => array('MAC' => $this->mac,
                                                  'UL'  => intval($this->ultransrate),
                                                  'DL'  => intval($this->dltransrate)
                                                      )
                       );
$this->dataSector[1] = array('Secteur' => "S2",
                                 'UL'      => intval($this->ulSecteur1),
                                 'DL'      => intval($this->dlSecteur1),
                                 'details'[] => array('MAC' => $this->mac,
                                                      'UL'  => intval($this->ultransrate),
                                                      'DL'  => intval($this->dltransrate)
                                                          )
                           );

Или же:

$this->dataSector[0] = array('Secteur' => "S1",
                             'UL'      => intval($this->ulSecteur1),
                             'DL'      => intval($this->dlSecteur1)
                       );
$this->dataSector[0]['details'][] = array('MAC' => $this->mac,
                                          'UL'  => intval($this->ultransrate),
                                          'DL'  => intval($this->dltransrate)
                                     );
$this->dataSector[1] = array('Secteur' => "S2",
                                 'UL'      => intval($this->ulSecteur1),
                                 'DL'      => intval($this->dlSecteur1)
                           );
    $this->dataSector[1]['details'][] = array('MAC' => $this->mac,
                                              'UL'  => intval($this->ultransrate),
                                              'DL'  => intval($this->dltransrate)
                                         );

Желаемый массив:

array (size=4)
  0 => 
    array (size=4)
      'Secteur' => string 'S1' (length=2)
      'UL' => int 1
      'DL' => int 0
      'details' => 
        array (size=2)
          0 => 
            array (size=3)
              'MAC' => string 'xx:xx:xx:xx:xx:xx' (length=17)
              'UL' => int 1
              'DL' => int 0
          1 => 
            array (size=3)
              'MAC' => string 'xx:xx:xx:xx:xx:xx' (length=17)
              'UL' => int 1
              'DL' => int 0
  1 => 
    array (size=3)
      'Secteur' => string 'S2' (length=2)
      'UL' => int 0
      'DL' => int 0
      'details' => 
        array (size=2)
          0 => 
            array (size=3)
              'MAC' => string 'xx:xx:xx:xx:xx:xx' (length=17)
              'UL' => int 1
              'DL' => int 0
          1 => 
            array (size=3)
              'MAC' => string 'xx:xx:xx:xx:xx:xx' (length=17)
              'UL' => int 1
              'DL' => int 0

Какое хорошее решение, пожалуйста?

2 ответа

Попробуй это

$this->dataSector[0] = array('Secteur'=>"S1",'UL'=> intval($this->ulSecteur1), 'DL'=> intval($this->dlSecteur1),'details' => []);

$dt=array('MAC' => $this->mac,'UL'=> intval($this->ultransrate),'DL'  => intval($this->dltransrate));

array_push($this->dataSector[0]['details'], $dt);

Вы можете использовать array_merge:

<?php
$this->dataSector[0]['details'] = array_merge($this->dataSector[0]['details'], array(array('MAC' => $this->mac,
      'UL'  => intval($this->ultransrate),
      'DL'  => intval($this->dltransrate)
  )), array(array('MAC' => $this->mac,
      'UL'  => intval($this->ultransrate),
      'DL'  => intval($this->dltransrate)
  ))
);

$ this-> dataSector 1['details'] = $ this-> dataSector [0] ['details'];

Другие вопросы по тегам