Задать вопрос

Как отсортировать массив?

Добрый день, подскажите как отсортировать массив что бы остались только одинаковые значения ?
Есть выборка из базы, выбираются по идентификатору товары у которых есть куча значений, но из них есть какие то одинаковые, а какие то разные, нужно что бы остался массив только с одинаковыми значениями.
для примера, из базы получаем
spoiler

Array
(
    [0] => Array
        (
            [attribute_id] => 49
            [name] => Код Viega
            [text] => 746827
        )

    [1] => Array
        (
            [attribute_id] => 40
            [name] => Ду, дюйм
            [text] => 1/2
        )

    [2] => Array
        (
            [attribute_id] => 21
            [name] => Материал корпуса
            [text] => Бронза кремниевая
        )

    [3] => Array
        (
            [attribute_id] => 23
            [name] => Материал шара
            [text] => Сталь нержавеющая
        )

    [4] => Array
        (
            [attribute_id] => 13
            [name] => Применение
            [text] => Водоснабжение, теплоснабжение
        )

    [5] => Array
        (
            [attribute_id] => 15
            [name] => Присоединение
            [text] => Резьба
        )

)
Array
(
    [0] => Array
        (
            [attribute_id] => 49
            [name] => Код Viega
            [text] => 746829
        )

    [1] => Array
        (
            [attribute_id] => 40
            [name] => Ду, дюйм
            [text] => 3/4
        )

    [2] => Array
        (
            [attribute_id] => 21
            [name] => Материал корпуса
            [text] => Бронза кремниевая
        )

    [3] => Array
        (
            [attribute_id] => 23
            [name] => Материал шара
            [text] => Сталь нержавеющая
        )

    [4] => Array
        (
            [attribute_id] => 13
            [name] => Применение
            [text] => Водоснабжение, теплоснабжение
        )

    [5] => Array
        (
            [attribute_id] => 15
            [name] => Присоединение
            [text] => Резьба
        )

)


сортировка должна быть по значению [text] после сортировки должно остаться
spoiler
Array
(
     [0] => Array
        (
            [attribute_id] => 21
            [name] => Материал корпуса
            [text] => Бронза кремниевая
        )

    [1] => Array
        (
            [attribute_id] => 23
            [name] => Материал шара
            [text] => Сталь нержавеющая
        )

    [2] => Array
        (
            [attribute_id] => 13
            [name] => Применение
            [text] => Водоснабжение, теплоснабжение
        )

    [3] => Array
        (
            [attribute_id] => 15
            [name] => Присоединение
            [text] => Резьба
        )

)

или может проще это отсортировать в запросе к базе ?
Спасибо.
  • Вопрос задан
  • 302 просмотра
Подписаться 3 Простой 26 комментариев
Ответ пользователя v3shin К ответам на вопрос (3)
v3shin
@v3shin
Веб-шаман
Извращение, конечно, но я бы сделал так:
$ar1 = [
	['a' => 1, 'b' => 2],
	['a' => 2, 'b' => 11],
	['a' => 3, 'b' => 12],
];
$ar2 = [
	['a' => 1, 'b' => 2],
	['a' => 2, 'b' => 11],
	['a' => 3, 'b' => 13],
];

$hashedArray1 = [];
foreach($ar1 as $ar) {
	$hashedArray1[json_encode($ar)] = $ar;
}
$hashedArray2 = [];
foreach($ar2 as $ar) {
	$hashedArray2[json_encode($ar)] = $ar;
}
var_dump(array_intersect_key($hashedArray1, $hashedArray2));
Ответ написан