, id, :
SELECT id, title FROM ... etc
( )
array(
0 => array("id" => 318, "title" => "title for 318"),
1 => array("id" => 377, "title" => "title for 377")
)
, , $events, :
foreach($event_titles as $row) {
$hash[array_search($row['id'], $events)] = $row['title'];
};
$events_titles = $hash;
( ):
array(
0 => array("title" => "title for 318"),
3 => array("title" => "title for 377")
)
. :
$ids = array_intersect($events, array_column($event_titles, 'id'));
$event_titles = array_combine(array_keys($ids), array_column($event_titles, 'title'));
Alternative
, , , , :
$subsql = implode(
' UNION ALL ',
array_map(function ($event) { return "SELECT $event AS id"; }, $events)
);
$sql = "SELECT wp_events.title
FROM ($subsql) AS eid
LEFT JOIN wp_events ON wp_events.id = eid.id
ORDER BY eid.id";
$events_titles = $wpdb->get_results($sql, ARRAY_A);
$subsql , (, ):
SELECT 318 AS id UNION ALL
SELECT 185 AS id UNION ALL
SELECT 180 AS id UNION ALL
SELECT 377 AS id
$events_titles , , , . , , , :
array(
0 => array("title" => "title for 318"),
1 => array("title" => null),
2 => array("title" => null),
3 => array("title" => "title for 377")
)
, null. null (0... 3) , :
$event_titles = array_filter($event_titles, function ($title) { return $title; });
( ):
array(
0 => array("title" => "title for 318"),
3 => array("title" => "title for 377")
)