调用Foreach外部的数组


Call an array outside Foreach

如何在foreach主循环之外访问数组$page_array。我只是无法在主foreach之外打印我的数组内容。

$page_array = array(); $j=0;
foreach($temp_ch_output as $ch_finaloutput)
{
   //code
    $pagetitle = $ch_finaloutput['title'];
    if(is_array($pagetitle)){
        foreach ($pagetitle as $pagetitles) {
            $page_array[$j]['page_view'] = $pageViews;
            $j++; 
        }
     } else {
        $page_array[$j]['page_view'] = $pageViews;
        $j++;
     }
}
 print_r($page_array);

pagesviews=Google Analytics Value,pagetitle=我获取页面视图的页面的标题,ch_finaloutput=有我的数组

在foreach循环内部获取$pageViews的方式可能存在问题;除此之外,我认为您的代码没有任何问题。

您可以在foreach主循环之外声明变量。此外,缩进您的代码:

$page_array = array();
foreach($temp_ch_output as $ch_finaloutput)
{
    if(is_array($pagetitle))
    {
        foreach ($pagetitle as $pagetitles)
        {
            $page_array[$j]['page_view'] = $pageViews;
        }
    }
    else
    {
        $page_array[$j]['page_view'] = $pageViews;
    }
}
print_r($page_array);

只需在外部使用数组变量。

foreach($temp_ch_output as $ch_finaloutput)
{
         // Your loop
}
print_r($page_array);

试试这个,如果$pagetitle不是数组,它应该直接在$page_array[$j]['page_view']; 中设置

$page_array = array();
foreach($temp_ch_output as $ch_finaloutput)
{
   //code
    if(is_array($pagetitle)){
        foreach ($pagetitle as $pagetitles) {
            $page_array[$j]['page_view'] = $pageViews;
        }
     } else {
        $page_array[$j]['page_view'] = $pagetitle;
     }
}
 print_r($page_array);

您错过了参数$j和前面提到的

$page_array = array();
$j=0;
foreach($temp_ch_output as $ch_finaloutput)
{
   //code
if(is_array($pagetitle)){
    foreach ($pagetitle as $pagetitles) {
        $page_array[$j]['page_view'] = $pageViews;
        $j++;
    }
 } else {
    $page_array[$j]['page_view'] = $pageViews;
 }
   $j++;
}

这里有一个问题:$j在这里似乎没有定义,我认为它可能是主foreach的键?

如果$j不是动态的,并且不会在每个主foreach循环中都发生变化,那么$page_array[$j]每次运行时都会被高估。

$pageViews从何而来?

$page_array = array()
foreach($temp_ch_output as $key=>$ch_finaloutput)
{
   //code
    if(is_array($pagetitle)){
        foreach ($pagetitle as $pagetitles) {
            // same issue here, data will be overvritten
            $page_array[$key]['page_view'] = $pageViews;
            // maybe solution $page_array[$key]['page_view'][] = $pageViews;
        }
     } else {
        $page_array[$key]['page_view'] = $pageViews;
     }
}
print_r($page_array);

更新

好的,您已经更新了$j,但您在哪里使用$pagetitles?如果你循环?

$ch_finaloutput$pagetitle$pageViews这里没有任何连接看起来如此混乱。。。

您的代码在以下地方真的没有意义-

$page_array = array(); $j=0;
foreach($temp_ch_output as $ch_finaloutput)
{
   //code
    if(is_array($pagetitle)){
        foreach ($pagetitle as $pagetitles) {
            $page_array[$j]['page_view'] = $pageViews;// Where did u use $pagetitles in this block?
            $j++; 
        }
     } else {
        $page_array[$j]['page_view'] = $pageViews;
        $j++;
     }
}
 print_r($page_array);

在foreach循环中,您实际上在哪里尝试打印数组?