【发布时间】:2017-09-27 07:45:13
【问题描述】:
感谢您查看我的问题,我在 PHP 中开发了一个自定义函数来使用 Ajax,我基本上想知道一个值是否在数组中。
我正在检查 event_try 是否在数据库查询的结果集中。在这种情况下,1004 在“$reg”数组中(我保证),在这种情况下,最后一个 if-else 应该返回“notok”,但是当我使用 Ajax 输出 json 时,我总是得到“ok”。
我已经使用 print_r 进行了测试,它确实返回“notok”。出于某种原因,它只是使用 json 和 ajax。
代码如下:
function validate_event_no_repeat(){
// header('Content-type: application/json');
$check_repeat_result = 0;
$check_repeat = array();
$event_try = 1004;
global $wpdb;
$current_user = wp_get_current_user();
$get_attendee = $wpdb->get_results("SELECT ATT_ID FROM su_esp_attendee_meta WHERE ATT_email='" . $current_user->user_email . "'");
foreach ($get_attendee as $atte):
$loggedID = $atte->ATT_ID;
$registration = $wpdb->get_results("SELECT ATT_ID, EVT_ID FROM su_esp_registration WHERE ATT_ID = $loggedID", ARRAY_N);
foreach ($registration as $reg):
if(in_array($event_try, $reg)):
$check_repeat[] = "notok";
else:
$check_repeat[] = "ok";
endif;
endforeach;
endforeach;
if(in_array("notok", $check_repeat)):
$check_repeat_result = "notok";
else:
$check_repeat_result = "ok";
endif;
echo json_encode(array('crr' => $check_repeat_result));
die();
}
我知道以上内容显然不是天才完成的,但它应该可以工作,不是吗?如果我能在这方面得到任何帮助,我将不胜感激。
【问题讨论】:
-
他使用 ARRAY_N 作为参数,我相信它会产生一个数字数组,因此他使用
in_array而不使用索引(我在这里猜测) -
你希望
event_try在哪里?在ATT_ID或EVT_ID中? -
@bub 它正在检查 EVT_ID
-
那么您可以查看
if(in_array($event_try, $reg['EVT_ID']))... -
@bub 不起作用:/
标签: php arrays json ajax wordpress