2016-06-10 133 views
-2

我從dig查詢數據構建了這個數組結構。Php多維數組

[10] => Array      
    (        
     [id] => 150     
     [0] => 200.201.202.23  
     [1] => dns.name1.com 
     [2] => 200.201.202.24  
     [3] => dns.name2.com 
     [4] => 200.201.202.25  
     [5] => dns.name3.com 
    )        ` 

我需要這樣的東西:

[10] => Array      
    (        

     [0] => array ([0] => 200.201.202.23  
         [1] => dns.name1.com 
         [id] => 150 
       ) 
     [1] => array ( [0] => 200.201.202.24  
         [1] => dns.name2.com 
         [id] => 150 
        ) 
     [2] => array ( [0] => 200.201.202.25  
         [1] => dns.name3.com 
         [id] => 150 
        ) 
    )        ` 

我不知道這是否可能?

繼承人我在哪裏創建數組的代碼: 在第一次從挖掘我使用array_push()添加內容到它。

$temp = array(); 
$i = 0; 
foreach ($digResult as $single){ 
    if (preg_match('/(?:^|\s+)(\d+)(?:\s+|\n+|$)/', $single)){ 
     $temp []["id"]= $single; 
     $i++; 
    }else { 
     $temp[$i][] = $single; 
    } 
}       
+3

添加在那裏你建立這個陣列 – Thamilan

+0

而不是創建這裏你應該嘗試在其中創建第一個數組從那裏使它的代碼。 – C2486

+0

顯示初始代碼,可以更改它以匹配結果。 –

回答

0

試試這個: -

<?php 

$array = array(        
     'id' => '150',     
     '0' => '200.201.202.23', 
     '1' => 'dns.name1.com', 
     '2' => '200.201.202.24', 
     '3' => 'dns.name2.com', 
     '4' => '200.201.202.25', 
     '5' => 'dns.name3.com' 
    ); 

$i = 0; 
$arrayLenght = (count($array)-2); 
$newArray = array(); 
while ($i <= $arrayLenght) { 
    $newArray[] = array(
      "0" => $array[$i++], 
      "1" => $array[$i++], 
      "id" => $array['id'] 
     ); 
} 
echo '<pre>'; 
print_r($newArray); 
echo '</pre>'; 
?> 

輸出: -

Array 
(
    [0] => Array 
     (
      [0] => 200.201.202.23 
      [1] => dns.name1.com 
      [id] => 150 
     ) 

    [1] => Array 
     (
      [0] => 200.201.202.24 
      [1] => dns.name2.com 
      [id] => 150 
     ) 

    [2] => Array 
     (
      [0] => 200.201.202.25 
      [1] => dns.name3.com 
      [id] => 150 
     ) 

) 
1

這會爲你工作:

<?php 
$dataArray = array(10 => array      
        (        
         'id' => 150 ,    
         0 => '200.201.202.23' ,  
         1 => 'dns.name1.com', 
         2 => '200.201.202.24', 
         3 => 'dns.name2.com', 
         4 => '200.201.202.25',  
         5 => 'dns.name3.com', 
        ) 
       );  
$newArray = array(); 
$id = $dataArray[10]['id']; 

for($i=0; $i< 6; $i++) 
{ 
    $newArray[10][] = array(0=>$dataArray[10][$i],1=>$dataArray[10][$i+1],'id'=> $id); 
    $i+=1; 
} 
print_r($newArray);    
?> 

這將輸出

Array 
(
    [10] => Array 
     (
      [0] => Array 
       (
        [0] => 200.201.202.23 
        [1] => dns.name1.com 
        [id] => 150 
       ) 

      [1] => Array 
       (
        [0] => 200.201.202.24 
        [1] => dns.name2.com 
        [id] => 150 
       ) 

      [2] => Array 
       (
        [0] => 200.201.202.25 
        [1] => dns.name3.com 
        [id] => 150 
       ) 

     ) 

) 

活生生的例子:CLICK HERE

+0

如果對你有幫助,你可以接受我的答案 –