我有一个可返回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)
,但都不起作用。我要访问错误的数组吗?如果是这样,我如何访问正确的数据以检查是否没有数据?
答案 0 :(得分:1)
$response
永远不会为空,但是$response['data']
或$data
可能为空
$response
是一个数组,其键名为“数据”,因此大小始终为1。
答案 1 :(得分:0)
您需要检查$ data,如下所示:
if(sizeof($data) === 0){echo "Empty";}