2016-07-25 9 views
2

Ich bekomme ein Problem beim Versuch, array_merge_recursive in einer Foreach zu verwenden. Was ich versuche, ist eine Website zu kratzen und dann alle Daten in ein multidimensionales Array zu setzen. Hier ist mein Code:PHP Array Merge rekursives Problem

Original-Array

$apiarray = array(
"response" => array(
    "badges" => array(
     array() 
    ) 
) 
); 

Array

foreach($recentbadges as $badge) 
{ 
++$bcount; 
$pbadge = $badge->find('div.profile_badges_badge', 0); 
$pbadge = strip_tags($badge, '<div><br />'); 
preg_match('@data-community-tooltip="([^"]+)"@', $pbadge, $matchg); 
$pbadge = array_pop($matchg); 
$pbadge = array(
    "response" => array(
     "badges" => array(
      array(
       "badge_title" => "{$pbadge}" 
      ) 
     ) 
    ) 
); 
$apiarray = array_merge_recursive($arrayfull, $pbadge); 
} 

Ausgabe von Druckarray

Array 
(
[response] => Array 
    (
     [badges] => Array 
      (
       [0] => Array //Why does this data appear? 
        (
        ) 

       [1] => Array 
        (
         [badge_title] => Heraldbr Level 2 Skullgirls Badge 
        ) 

       [2] => Array 
        (
         [badge_title] => Gold Cubebr Level 5 GooCubelets Badge 
        ) 

       [3] => Array 
        (
         [badge_title] => Four Color Acesbr Level 5 Why So Evil 2: Dystopia Badge 
        ) 

       [4] => Array 
        (
         [badge_title] => Teleport Controllerbr Level 3 Heaven Island Life Badge 
        ) 

      ) 

    ) 

) 
verschmolzen werden 0

Warum in dem mehrdimensionalen Array das erste Array zurückgibt mit

[0] => Array //Why does this data appear? 
        (
        ) 

Es wird nur erscheinen, werden vier Array-Elemente gemeint, da es 4 Ergebnisse ist, die von der foreach

+0

Erwägen Sie, eine Antwort auszuwählen (wenn eine gute zur Verfügung gestellt wurde), wenn sich die Menschen die Zeit nehmen, Ihnen zu helfen. – BeetleJuice

Antwort

0

Entfernen Sie die array() von Abzeichen kommen in der ursprünglichen Anordnung, wie:

$apiarray = array(
    "response" => array(
     "badges" => array() 
    ) 
); 
1

Das leere erste Ergebnis stammt von Ihrer Definition:

$apiarray = array(
    "response" => array(
     "badges" => array(
      array() // <- remove this guy 
     ) 
    ) 
);