从另一个PHP文件调用函数时,返回数组的最后一项

时间:2019-09-11 12:37:12

标签: php arrays google-analytics-api

我是PHP的新手。我想从一个PHP文件中的函数返回一个数组,并在另一个PHP文件中访问数组的元素。

我面临的问题是,当我运行源文件并打印数组的元素时,我能够在控制台中看到所有标签,但是当我返回数组并将其打印在另一个php文件中时,则仅返回一个项或不返回物品被退回。

源文件.php

<?php

// Load the Google API PHP Client Library.
require_once 'C:/xxxx/google-api-php-client-2.2.4/vendor/autoload.php';


function getTags(){

    $KEY_FILE_LOCATION = 'C:/xxx/service-account-credentials.json';

    $params=array(
        'dimensions' => 'ga:dimension5,ga:dimension2',
        'filters' => 'ga:dimension5==123456'
    );
    $results =  $analytics->data_ga->get(
        'ga:' . 123456,
        '2019-08-29',
        'yesterday',
        'ga:sessions',
        $params
        );

        $rows = $results->getRows();
        $StoreTags = array();

        for($i=0;$i<sizeof($rows);$i++){

            $ExtractTag_arr = explode(',',$rows[$i][1]);

            for($j=0;$j<count($ExtractTag_arr);$j++){
                $StoreTags[]=$ExtractTag_arr[$j];
            }

            $ExtractTag_arr='';
        }

        $unique_tags = array_unique($StoreTags);
        $Unique_tags_Values = array_values(array_filter($unique_tags));
        $Count_UniqueTags = count($Unique_tags_Values);
        $Count_StoreTags=count($StoreTags);

        for($a=0;$a<$Count_UniqueTags;$a++){

            $Count_Occurances = 0;
            $UniqueTags_Value = $Unique_tags_Values[$a];

            for ($k=0;$k<$Count_StoreTags;$k++){

                if ($UniqueTags_Value == $StoreTags[$k]){

                    $Count_Occurances = $Count_Occurances+1;
                }
                else{
                    $Count_Occurances = $Count_Occurances+0;

                }
            }

           $Display_Tags=array($Unique_tags_Values[$a], $Count_Occurances);

            return  $Display_Tags;
        }

}

目标文件:

<?php
include 'Source.php';

get_tags = getTags();
Print_r(getTags());

当我运行target.php时不返回任何内容,并且如果我运行不带return语句的source.php并可以打印$Display_Tags中的所有项目

1 个答案:

答案 0 :(得分:2)

1。get_tags = getTags();不正确,需要为$get_tags = getTags();

2。Print_r(getTags());必须为print_r(getTags());

3。要解决您的问题,请将return $Display_Tags;放在函数for()的{​​{1}}循环之外。

getTags()