Как собрать массив с уникальными ключами?
Есть такой запрос
$myArray = array();
$filter_btn_arr = [];
$filter_button = $dbpdo->prepare('SELECT * FROM filter
GROUP BY filter_value DESC ORDER BY ABS(filter_value) ASC');
$filter_button->execute();
while ($row = $filter_button->fetch())
$filter_btn_arr[] = $row;
foreach ($filter_btn_arr as $row) {
$filter_id = $row['filter_id'];
$filter_value = $row['filter_value'];
$filter_type = $row['filter_type'];
//тут заполняем массив $myArray
array_push($myArray, array(
'filter_type' => $filter_type,
'filter_id' => $filter_id,
'filter_value' => $filter_value
));
}
Вот, что получается, если вывести массив через var_dump (если кто-то из редакторов будет редактировать мой вопрос, то пожалуйста добавьте массив ниже в спойлер)
array(21) {
[0]=>
array(3) {
["filter_type"]=>
string(5) "color"
["filter_id"]=>
int(9)
["filter_value"]=>
string(4) "Blue"
}
[1]=>
array(3) {
["filter_type"]=>
string(5) "color"
["filter_id"]=>
int(1)
["filter_value"]=>
string(5) "Black"
}
[2]=>
array(3) {
["filter_type"]=>
string(5) "color"
["filter_id"]=>
int(2)
["filter_value"]=>
string(3) "Red"
}
[3]=>
array(3) {
["filter_type"]=>
string(5) "color"
["filter_id"]=>
int(3)
["filter_value"]=>
string(4) "Gold"
}
[4]=>
array(3) {
["filter_type"]=>
string(5) "color"
["filter_id"]=>
int(4)
["filter_value"]=>
string(9) "Rose Gold"
}
[5]=>
array(3) {
["filter_type"]=>
string(4) "used"
["filter_id"]=>
int(26)
["filter_value"]=>
string(11) "işlənmiş"
}
[6]=>
array(3) {
["filter_type"]=>
string(5) "color"
["filter_id"]=>
int(5)
["filter_value"]=>
string(4) "Rose"
}
[7]=>
array(3) {
["filter_type"]=>
string(4) "used"
["filter_id"]=>
int(27)
["filter_value"]=>
string(4) "Yeni"
}
[8]=>
array(3) {
["filter_type"]=>
string(5) "color"
["filter_id"]=>
int(6)
["filter_value"]=>
string(6) "Yellow"
}
[9]=>
array(3) {
["filter_type"]=>
string(5) "color"
["filter_id"]=>
int(7)
["filter_value"]=>
string(4) "Pink"
}
[10]=>
array(3) {
["filter_type"]=>
string(5) "color"
["filter_id"]=>
int(8)
["filter_value"]=>
string(4) "Gray"
}
[11]=>
array(3) {
["filter_type"]=>
string(3) "ram"
["filter_id"]=>
int(18)
["filter_value"]=>
string(1) "1"
}
[12]=>
array(3) {
["filter_type"]=>
string(7) "storage"
["filter_id"]=>
int(10)
["filter_value"]=>
string(1) "2"
}
[13]=>
array(3) {
["filter_type"]=>
string(3) "ram"
["filter_id"]=>
int(20)
["filter_value"]=>
string(1) "3"
}
[14]=>
array(3) {
["filter_type"]=>
string(7) "storage"
["filter_id"]=>
int(11)
["filter_value"]=>
string(1) "4"
}
[15]=>
array(3) {
["filter_type"]=>
string(7) "storage"
["filter_id"]=>
int(12)
["filter_value"]=>
string(1) "8"
}
[16]=>
array(3) {
["filter_type"]=>
string(7) "storage"
["filter_id"]=>
int(13)
["filter_value"]=>
string(2) "16"
}
[17]=>
array(3) {
["filter_type"]=>
string(7) "storage"
["filter_id"]=>
int(14)
["filter_value"]=>
string(2) "32"
}
[18]=>
array(3) {
["filter_type"]=>
string(7) "storage"
["filter_id"]=>
int(15)
["filter_value"]=>
string(2) "64"
}
[19]=>
array(3) {
["filter_type"]=>
string(7) "storage"
["filter_id"]=>
int(16)
["filter_value"]=>
string(3) "128"
}
[20]=>
array(3) {
["filter_type"]=>
string(7) "storage"
["filter_id"]=>
int(17)
["filter_value"]=>
string(3) "512"
}
}
Но мне нужно получить массив вида:
array(1) {
[0]=>
array(4) {
["color"]=>
array(1) {
["data"]=>
array(9) {
[0]=>
array(2) {
["id"]=>
int(3)
["value"]=>
string(4) "Gold"
}
[1]=>
array(2) {
["id"]=>
int(4)
["value"]=>
string(9) "Rose Gold"
}
[2]=>
array(2) {
["id"]=>
int(5)
["value"]=>
string(4) "Rose"
}
[3]=>
array(2) {
["id"]=>
int(6)
["value"]=>
string(6) "Yellow"
}
[4]=>
array(2) {
["id"]=>
int(7)
["value"]=>
string(4) "Pink"
}
[5]=>
array(2) {
["id"]=>
int(8)
["value"]=>
string(4) "Gray"
}
[6]=>
array(2) {
["id"]=>
int(9)
["value"]=>
string(4) "Blue"
}
[7]=>
array(2) {
["id"]=>
int(1)
["value"]=>
string(5) "Black"
}
[8]=>
array(2) {
["id"]=>
int(2)
["value"]=>
string(3) "Red"
}
}
}
["storage"]=>
array(1) {
["data"]=>
array(8) {
[0]=>
array(2) {
["id"]=>
int(10)
["value"]=>
string(1) "2"
}
[1]=>
array(2) {
["id"]=>
int(11)
["value"]=>
string(1) "4"
}
[2]=>
array(2) {
["id"]=>
int(12)
["value"]=>
string(1) "8"
}
[3]=>
array(2) {
["id"]=>
int(13)
["value"]=>
string(2) "16"
}
[4]=>
array(2) {
["id"]=>
int(14)
["value"]=>
string(2) "32"
}
[5]=>
array(2) {
["id"]=>
int(15)
["value"]=>
string(2) "64"
}
[6]=>
array(2) {
["id"]=>
int(16)
["value"]=>
string(3) "128"
}
[7]=>
array(2) {
["id"]=>
int(17)
["value"]=>
string(3) "512"
}
}
}
["ram"]=>
array(1) {
["data"]=>
array(2) {
[0]=>
array(2) {
["id"]=>
int(18)
["value"]=>
string(1) "1"
}
[1]=>
array(2) {
["id"]=>
int(20)
["value"]=>
string(1) "3"
}
}
}
["used"]=>
array(1) {
["data"]=>
array(2) {
[0]=>
array(2) {
["id"]=>
int(26)
["value"]=>
string(11) "işlənmiş"
}
[1]=>
array(2) {
["id"]=>
int(27)
["value"]=>
string(4) "Yeni"
}
}
}
}
}
Каким образом я это могу сделать ?
Буду благодарен за любую помощь