Доброго времени суток, есть массив Код (Text): [2] => Array ( [cart_buyerId] => 1 [cart_productId] => 3907 [cart_sellerId] => 776 ) [3] => Array ( [cart_buyerId] => 2 [cart_productId] => 3201 [cart_sellerId] => 776 ) [3] => Array ( [cart_buyerId] => 3 [cart_productId] => 3201 [cart_sellerId] => 771 ) Нужно сгруппировать его по cart_sellerId, что бы cart_sellerId был ключом, а внутри то, что к нему относиться, пример: Код (Text): [776] => Array ( [0] => Array ( [cart_buyerId] => 1 [cart_productId] => 3907 ) [1] => Array ( [cart_buyerId] => 1 [cart_productId] => 3907 ) ) [771] => Array ( [0] => Array ( [cart_buyerId] => 1 [cart_productId] => 3201 ) )
откуда данные получаешь ? --- Добавлено --- PHP: <?php function fetchall_group( array $a ): array { $all = []; foreach ( $a AS $s ) { $all[array_shift ( $s )][] = $s; } return $all; } При этом - если cart_sellerId находится первозначимым
Как то так закрутилось, подскажи пожалуйста нельзя ли реализовать такую группировку на уровне SQL запроса, что бы не прогонять в цикле PHP: $cartProductArray = \R::getAssoc("SELECT shopping_cart.*, product.*, product_variations.* FROM shopping_cart LEFT JOIN product ON product.product_id = shopping_cart.cart_productId LEFT JOIN product_variations ON product_variations.variation_productId = shopping_cart.cart_productId AND shopping_cart.cart_variationId IS NOT NULL WHERE cart_buyerId = ? LIMIT ? ", [$_SESSION['buyer']['buyerId'], LIMIT_CART_ITEM]); $newArrayKey = 0; $newProductArray = []; foreach ($cartProductArray as $cartProductItem) { $newProductArray[$cartProductItem['product_sellerId']][$newArrayKey] = $cartProductItem; $newArrayKey++; }