我是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
中的所有项目
答案 0 :(得分:2)
1。get_tags = getTags();
不正确,需要为$get_tags = getTags();
。
2。Print_r(getTags());
必须为print_r(getTags());
3。要解决您的问题,请将return $Display_Tags;
放在函数for()
的{{1}}循环之外。
getTags()