2017-03-06 9 views
1

다른 배열에 하나의 배열을 추가하는 것을 관리하려고하는데 작동하지 않습니다. 죄송합니다 질문이 이미 요청한 경우 (하지만 stackoverflow 찾을 수 없습니다).

$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 

제발 좋은 해결책은 뭔가요?

+0

당신에게 마지막 시도가 작동해야보십시오. 마지막 시도의 문제는 무엇입니까? –

+0

@KrisRoofe 문제는 항상 키 0입니다. 키가 자체적으로 증가하지 않습니다. \ – Peacefull

답변

0

당신은 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 [ '세부 사항'] = $ this-> dataSector [0] [ '세부 사항'];

+0

안녕하세요, 내 질문을 편집하여 수정 한 내용과 관련이 있는지 잘 모르겠습니다. Thx – Peacefull

+0

나는 이것이 좋은 것 같아 –

0

$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); 
+0

나는 당신의 코드를 시도했지만 [details] 배열의 키는 항상 0이다. 자동 증가가 작동하지 않는다. 새 디테일을 추가하기 전에 배열 값을 만들어 주 배열에 추가해야합니다. 예 : – Peacefull

+0

새 값으로하려면 '$ this-> mac = 'Yosemite', $ this-> ultransrate = 'xxxxxxx ', $ this-> dltransrate ='xxxxxx ' $ dt = array ('MAC '=> $ this-> mac,'UL '=> intval ($ this-> ultransrate),'DL '=> intval ($) this-> dltransrate)); array_push ($ this-> dataSector [0] [ 'details'], $ dt); // $ this-> mac = '엘 캡틴', $ this-> ultransrate = 'xxxxxxx', $ this-> dltransrate = 'xxxxxx' $ dt = array ('MAC'=> $ this-> mac, 'UL'=> intval ($ this-> ultransrate), 'DL'=> intval ($ this-> dltransrate)); – user3933047

+0

jsfiddle 예제가 있으십니까? thx – Peacefull