如何检查ajax调用是否返回数组的空数组

时间:2018-09-26 21:44:52

标签: php arrays json

我有一个可返回JSON编码数组的php脚本。它可以正常工作,但是我需要检查它是否为空。我的问题在于它是一个数组数组。 如何在服务器端正确检查空数组?

PHP脚本(重要内容)

$data = array();
foreach ($results = $db->getRows('SELECT * FROM users WHERE username !=?', [$username]) as $result) {
$name = $result['username'];
$lat = $result['lat'];
$lng = $result['lng'];
$distance = getDistance($user_lat, $user_lng, $lat, $lng);

if(withinRange($distance, $selected_distance, $selected_distance + 4)) {       
    //This is what's populated if data is available
    $data[] = array('name'=>$name, 'lat'=>$lat, 'lng'=>$lng); 
}

$response = array('data' => $data);
echo json_encode($response);

如果存在数据,则看起来像这样:

{"data":[{"name":"test_user2","lat":"35.932517","lng":"-89.905343"}]}

我尝试过:

if(empty($response)
if(count($response) < 1)

,但都不起作用。我要访问错误的数组吗?如果是这样,我如何访问正确的数据以检查是否没有数据?

2 个答案:

答案 0 :(得分:1)

$response永远不会为空,但是$response['data']$data可能为空

$response是一个数组,其键名为“数据”,因此大小始终为1。

答案 1 :(得分:0)

您需要检查$ data,如下所示:

if(sizeof($data) === 0){echo "Empty";}