Удалить массив из массива в котором есть совпадение по одному из элементов
Есть массив
var_dump
array(3) {
[0]=>
object(stdClass)#31244 (14) {
["id"]=>
string(2) "30"
["form_id"]=>
string(1) "3"
["post_id"]=>
string(6) "214515"
["created_by"]=>
string(4) "2352"
["created_at"]=>
string(19) "2020-12-21 11:16:08"
["updated_at"]=>
string(19) "2020-12-21 11:16:08"
["status"]=>
string(6) "normal"
["entry_id"]=>
string(2) "30"
["element_id"]=>
string(2) "14"
["value"]=>
string(2) "42"
}
[1]=>
object(stdClass)#31242 (14) {
["id"]=>
string(2) "31"
["form_id"]=>
string(1) "3"
["post_id"]=>
string(6) "214515"
["created_by"]=>
string(4) "2352"
["created_at"]=>
string(19) "2020-12-22 21:25:42"
["updated_at"]=>
string(19) "2020-12-22 21:25:42"
["status"]=>
string(6) "normal"
["entry_id"]=>
string(2) "31"
["element_id"]=>
string(2) "14"
["value"]=>
string(2) "42"
}
[2]=>
object(stdClass)#31250 (14) {
["id"]=>
string(2) "32"
["form_id"]=>
string(1) "3"
["post_id"]=>
string(6) "214515"
["created_by"]=>
string(2) "42"
["created_at"]=>
string(19) "2020-12-22 23:25:24"
["updated_at"]=>
string(19) "2020-12-22 23:25:24"
["status"]=>
string(6) "normal"
["entry_id"]=>
string(2) "32"
["element_id"]=>
string(2) "14"
["value"]=>
string(2) "42"
}
}
sql запрос
SELECT * FROM wp_quform_entries
JOIN wp_quform_entry_data ON wp_quform_entry_data.value=".$cur_user_id."
WHERE wp_quform_entries.form_id = ".$idform." && wp_quform_entries.id = wp_quform_entry_data.entry_id
Я хочу убрать массив в котором повторяется элемент created_by он находится в таблице wp_quform_entries
Вижу два варианта, один работать с массивом после запроса, но не удалось реализовать к сожалению, второй составить sql запрос. SELECT DISTINCT помогает только в случае запроса по определенному столбцу, а я запрашиваю все поля с таблицы, по этому мне это не помогает.
Буду рад любой помощи или совету, я в тупике по обоих случаях.
Ответы (1 шт):
Автор решения: yuralucky
→ Ссылка
Несколько дней назад игрался с такой проблемой держи код
$arrayTaskId = [];
$uniqueData = [];
foreach ($data as $item) {
if (in_array($item->created_by, $arrayTaskId)) {
} else {
$uniqueData[] = $item;
$arrayTaskId[] = $item->created_by;
}
}
return $uniqueData;