PHP数组未在本地显示,但显示在实时站点上

PHP数组未在本地显示,但显示在实时站点上,php,arrays,json,wordpress,Php,Arrays,Json,Wordpress,我创建了一个插件,可以获取用户所在国家的详细信息,包括城市、国家和邮政编码 插件中有两个函数,一个获取国家,另一个获取用户的国家、城市和邮政编码,并输出所有用户详细信息的数组。在一个模板中,我试图var_转储数据以进行测试,在我的实时站点上,我得到以下信息: (3.14407)、成员“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

我创建了一个插件,可以获取用户所在国家的详细信息,包括城市、国家和邮政编码

插件中有两个函数,一个获取国家,另一个获取用户的国家、城市和邮政编码,并输出所有用户详细信息的数组。在一个模板中,我试图var_转储数据以进行测试,在我的实时站点上,我得到以下信息:

(3.14407)、成员“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1789:“[“1789”--“,52.9225301,-1.4746186,“成员”],“5029”:[“5029”,“-”,55.953252,-3.188267,“成员”],等

以下是整个功能:

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增加了更多的代码,使实际功能更加精确。