2015-06-23 59 views
1

我抓住了一些XML數據並用PHP解析它。在php多維中合併單個結果以匹配?

大部分結果都是以多維數組形式出現的,但偶爾我會在單個數組中獲得結果,並且會破壞我的腳本。

我想格式化單個結果以匹配multidiminsonal數組中的結果的格式,但我沒有任何運氣。

這裏是我的了:

Array 
    (
       [name] => Steve Jobs 
       [id] => 3 
    ) 

Array 
    (
     [0] => Array 
      (
       [name] => Steve Jobs 
       [id] => 6 
      ) 

     [1] => Array 
      (
       [name] => Bill Gates 
       [id] => 8 
      ) 

    ) 

我試圖格式化一個結果匹配,則多維格式壓扁......

Array 
    (
     [0] => Array 
      (
       [name] => Steve Jobs 
       [id] => 3 
      ) 

     [1] => Array 
      (
       [name] => Steve Jobs 
       [id] => 6 
      ) 

     [2] => Array 
      (
       [name] => Bill Gates 
       [id] => 8 
      ) 

    ) 

我已經試過這樣:

$array_check = @array_keys($result[0]['name']); 

if ($array_check[0] == "0") { 
      $result; 

     } elseif ($array_check[0] == "name") { 
      $ReWrite = array ([0] => 
         array (['name']=> 
         array ($result[0]['name']) 
         )); 

      $result = $ReWrite; 

     } 

我以爲會這樣做,但它是關閉的...

回答

0

試試這個:

$array_check = @array_keys($result[0]['name']); 

    if (!isset($array_check[0])) { 
     $result[] = $array_check; 
    } else { 
     $result = $array_check; 
    } 

    var_dump($result); 
+0

那把我甩了這一點: '陣列(大小= 2) '名'=>字符串 '史蒂夫·喬布斯' '身份證'=>字符串「1 ' 0 =>空 陣列(大小= 3) 0 => 陣列(大小= 2) '名稱'=>字符串'史蒂夫Jobs的 \t的 'id'=>字符串 '6' 1 = > \t array(s ize = 2) 'name'=>'Bill'Gates' \t'id'=> string'8' 2 => null' – user961389

0

如果你的第一陣列被分配到變量$ singleArray並存儲在$結果你的目標結果,與reset()試試這個array_push($results, $singleArray);

使用此一起返回的第一個元素陣列:

if(!is_array(reset($result))){ 
    array_push($results, $result); 
} 

這將測試,如果該陣列不包含的陣列作爲一個元素,如果它不整個陣列推到聚合陣列。

編輯:試試這個循環:

for($i = 0; $i <= count($multi); $i++){ 
    $arr = $multi[$i]; 
    if(!is_array($arr)){ 
     $multi[$i] = array($arr); 
    } 
} var_dump($multi); 
+0

我的第一個數組已經在mulitdimensional數組中。我正在運行一個循環並檢查每個數組,然後重寫。 'var_dump($ multiarr);' – user961389

+0

你可以發佈你的循環? –

+1

'foreach($ multi as $ arr){ $ array_check = @array_keys($ arr [0] ['name']); (!isset($ array_check [0])){ $ arr [] = $ array_check; } else { $ arr = $ array_check; } } var_dump($ multi);' – user961389