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'];