这就是$conversationArray
数组的样子,
array(7) {
[0]=>
array(2) {
["id"]=>
string(1) "1"
["timestamp"]=>
int(0)
}
[1]=>
array(2) {
["id"]=>
string(1) "3"
["timestamp"]=>
int(0)
}
[2]=>
array(2) {
["id"]=>
string(1) "4"
["timestamp"]=>
int(0)
}
[3]=>
array(2) {
["id"]=>
string(1) "5"
["timestamp"]=>
int(0)
}
现在,如果任何会话ID的时间戳超过给定的时间戳,我必须检查一个表。如果是,我需要受影响的conversation_id。
我不确定如何从$conversationArray
数组中获取 id 和时间戳以适合此查询。
$query = '
SELECT conversation_id FROM tbl_notification
WHERE timestamp IN >implode(',', $timestamp),
AND conversation_id IN >implode(',', $id)
';
答案 0 :(得分:1)
您需要做的是将IDs
和Timestamps
放在单独的数组中,并对每个数组执行implode()
。
要获取单独的数组,您可以使用array_column()从输入数组中的单个列返回值。
所以要在单个数组中获取ID和时间戳,你可以这样做,
$ids = array_column($mainarray, 'id');
$timestamps = array_column($mainarray, 'timestamp');
现在,您可以对每个人执行 implode()来查询数据库。
考虑使用Prepared语句进行SQL查询以避免SQL 注射攻击。