2016-07-25 109 views
2

我在尝试在foreach中使用array_merge_recursive时遇到问题。 我想要做的是刮一个网站,然后把所有的数据放入一个多维数组。这是我的代码:PHP数组合并递归问题

原始数组

$apiarray = array(
"response" => array(
    "badges" => 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); 
} 

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 
        ) 

      ) 

    ) 

) 

为什么多维数组中的第一阵列

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

有只意味着是出现4个数组元素返回,因为有4个结果,将来自在foreach

+0

当人们花时间帮助您时,请考虑选择一个答案(如果提供的答案很好)。 – BeetleJuice

回答

0

取下徽章array()原始数组中,如:

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

空的第一个结果来自于你的定义:

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