PHP数组未在本地显示,但显示在实时站点上
我创建了一个插件,可以获取用户所在国家的详细信息,包括城市、国家和邮政编码 插件中有两个函数,一个获取国家,另一个获取用户的国家、城市和邮政编码,并输出所有用户详细信息的数组。在一个模板中,我试图var_转储数据以进行测试,在我的实时站点上,我得到以下信息: (3.14407)、成员“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1789:“[“1789”--“,52.9225301,-1.4746186,“成员”],“5029”:[“5029”,“-”,55.953252,-3.188267,“成员”],等 以下是整个功能:PHP数组未在本地显示,但显示在实时站点上,php,arrays,json,wordpress,Php,Arrays,Json,Wordpress,我创建了一个插件,可以获取用户所在国家的详细信息,包括城市、国家和邮政编码 插件中有两个函数,一个获取国家,另一个获取用户的国家、城市和邮政编码,并输出所有用户详细信息的数组。在一个模板中,我试图var_转储数据以进行测试,在我的实时站点上,我得到以下信息: (3.14407)、成员“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
function shiftms_userloc_get_user_location( $userid = false ) {
if ( !$userid ) {
if ( !bp_displayed_user_id() ) {
return false;
} else {
$userid = bp_displayed_user_id();
}
}
$location = '';
$country = bp_get_profile_field_data( 'field=Country&user_id=' . $userid );
$city = bp_get_profile_field_data( 'field=City&user_id=' . $userid );
$zip = bp_get_profile_field_data( 'field=Postcode/Zip code&user_id=' . $userid );
if( $city ) {
$location .= $city;
if( $zip ) {
$location .= ' ' . $zip;
}
} else {
if( $zip ) {
$location .= $zip;
}
}
if ( $country ) {
if( $location ) {
$location .= ', ' . $country;
} else {
$location .= $country;
}
}
return $location;
}
function shiftms_userloc_get_locations( $format = 'json', $ajax = true ) {
$locations = array();
//if ( false === ( $locations = get_transient( 'shiftms_userlocations' ) ) ) {
$args = array( 'fields' => 'ID' );
$users = new WP_User_Query( $args );
if ( ! empty( $users->results ) ) {
foreach ( $users->results as $userid ) {
$location = shiftms_userloc_get_user_location( $userid );
if( $location ) {
$geo = get_user_meta( $userid, 'shiftms-geo', true );
if ( $geo ) {
$latlong = explode('/', $geo );
if ( is_array($latlong) && ( 2 == count( $latlong ) ) ) {
if ( 0 != $latlong[0] && 0 != $latlong[1] )
$locations[ $userid ] = array( $userid, $location, (float)$latlong[0], (float)$latlong[1], 'members' );
}
}
}
}
}
//}
$return = json_encode( $locations );
if ( $ajax ) {
echo $return;
die();
} else {
return $return;
}
}
在本地站点中,我得到以下信息:
string(2)“[]”
创建数组的函数如下所示:
$locations[$userid]=数组($userid,$location,(float)$latlong[0],(float)$latlong[1],'members');
我认为这是我的php版本的一个问题,但我不确定。所有的数据都存在,因为它是相同的db等,当我输出当前用户的国家、城市和邮政编码时,它可以工作。它可能是我试图获得的数组类型。恐怕我们需要更多的帮助,什么函数生成字符串例如,该函数是否返回任何错误并报告错误?原因可能有很多。它甚至可能是服务器端代码错误,例如,当初始化时,如果在本地设置,是否确定数组没有超出范围?提供更多详细信息。您在何处初始化数组?何时使用它?嘿,Patrick/Nick L I增加了更多的代码,使实际功能更加精确。