2017-03-06 8 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] ['詳細']、$ dt); // $ this-> mac = 'El Captain'、$ this-> ultransrate = 'xxxxxxx'、$ this-> dltransrate = 'xxxxxx' $ dt = array( 'MAC' => $ this-> mac、 'UL' => intval($ this-> ultransrate)、 'DL' => intval($ this-> dltransrate)); – user3933047

+0

jsfiddleの例がありますか? thx – Peacefull

関連する問題