Я не уверен, как это сделать, но я хотел бы отфильтровать один набор результатов данных, перебирая другой. Как правильно это сделать? Я пытаюсь array_filter, но я не уверен, что gr asp как сделать эту работу похожей на оператор sql where: edit: Эти ниже запросы относятся к MySQL database
$arr_years = $wpdb->get_results("SELECT id, submodel_id, year FROM `subyears` ORDER by submodel_id", ARRAY_A);
$arr_submodels = $wpdb->get_results("SELECT id, model_id, sub_name FROM `submodels` ORDER by model_id", ARRAY_A);
foreach($arr_submodels as $submodel){
$filtered = array_filter($arr_years, function ($value,$key){
return $value == $submodel->id && $key == 'year';
});
//do something with $filtered here
}
В основном я хочу эквивалент "где submodel_id == идентификатор другого массива". Я думаю, что array_map может делать то, что я хочу, но я тоже не asp, но если это лучший способ, пожалуйста, дайте мне знать и покажите, как? Спасибо.
Редактировать: добавлен пример выходных фрагментов массива: $ arr_years:
array(50) { [0]=> array(3) { ["id"]=> string(1) "1" ["submodel_id"]=> string(1) "2" ["year"]=> string(4) "2020" } [1]=> array(3) { ["id"]=> string(1) "2" ["submodel_id"]=> string(1) "3" ["year"]=> string(4) "2020" } [2]=> array(3) { ["id"]=> string(1) "3" ["submodel_id"]=> string(1) "4" ["year"]=> string(4) "2020" } [3]=> array(3) { ["id"]=> string(1) "4" ["submodel_id"]=> string(1) "5" ["year"]=> string(4) "2020" } [4]=> array(3) { ["id"]=> string(1) "5" ["submodel_id"]=> string(1) "6" ["year"]=> string(4) "2020" } }
$ arr_submodels:
array(50) { [0]=> array(3) { ["id"]=> string(1) "2" ["model_id"]=> string(2) "22" ["sub_name"]=> string(13) "RMK KHAOS 155" } [1]=> array(3) { ["id"]=> string(1) "3" ["model_id"]=> string(2) "22" ["sub_name"]=> string(7) "RMK 144" } [2]=> array(3) { ["id"]=> string(1) "4" ["model_id"]=> string(2) "22" ["sub_name"]=> string(11) "PRO-RMK 155" } [3]=> array(3) { ["id"]=> string(1) "5" ["model_id"]=> string(2) "22" ["sub_name"]=> string(11) "PRO-RMK 163" } [4]=> array(3) { ["id"]=> string(1) "6" ["model_id"]=> string(2) "22" ["sub_name"]=> string(11) "PRO-RMK 174" } [5]=> array(3) { ["id"]=> string(1) "7" ["model_id"]=> string(2) "23" ["sub_name"]=> string(7) "SKS 146" } }
Причина, по которой я этого не делаю sql - мне нужно создать список лет с разделителями-запятыми из таблицы лет для каждого идентификатора подмодели ... это отношение много-к-одному.
Спасибо