У меня есть скрипт php, который возвращает массив в кодировке JSON. Он работает правильно, но мне нужно проверить, пуст ли он. Моя проблема заключается в том, что это массив массивов. Как правильно проверить наличие пустого массива на стороне сервера?
Скрипт 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)
но ни один не работал. Я пытаюсь получить доступ к неправильному массиву? Если да, как мне получить доступ к правильному, чтобы проверить отсутствие данных?
@FelippeDuarte Отправьте это как ответ.
Я понял это, но если вы хотите ответить, я дам вам баллы принятия.






вам нужно проверить $ data, например:
if (sizeof($data) === 0){echo "Empty";}
Ага. Это именно то, что я делал неправильно. Доступ к неправильному массиву. Спасибо.
$response никогда не будет пустым, но $response['data'] или $data могут быть
$response - это массив с ключом с именем «data», поэтому размер всегда будет равен 1.
Спасибо, что указали на эту вторую часть @Felippe. Я должен был знать лучше.
$responseникогда не будет пустым, но$response['data']или$dataмогут быть пустыми.