Объединить данные в один массив

#php #mysql #select #mysqli #left-join

#php #mysql #выберите #mysqli #объединение слева

Вопрос:

Можете ли вы сказать мне, ребята, чего мне не хватает? как я могу поместить все данные в один массив? запрос atm выглядит следующим образом

 $query = $this->db->query("SELECT
                        oc_fast_order_option.*,
                        oc_product_description.name AS product_name,
                        oc_fast_order.quantity
                        FROM oc_fast_order_option
                        LEFT JOIN oc_fast_order ON (oc_fast_order.id = '" . $order_id . "')
                        LEFT JOIN oc_product_description ON (oc_product_description.product_id = oc_fast_order.product_id)
                        WHERE order_id = '" . $order_id . "'");

    return $query->rows;
  

результат этого запроса разделен на несколько массивов, и когда я выполняю цикл, я не могу отобразить результат должным образом

 Array
(
[0] => Array
    (
        [order_option_id] => 56
        [order_id] => 118
        [order_product_id] => 52
        [product_option_id] => 745
        [product_option_value_id] => 1104
        [name] => Цветове:
        [value] => Черен
    )

[1] => Array
    (
        [order_option_id] => 55
        [order_id] => 118
        [order_product_id] => 52
        [product_option_id] => 746
        [product_option_value_id] => 0
        [name] => new input
        [value] => 3
    )
)
  

как я могу получить что-то подобное?

  Array
  (
    [option_id] = >
     Array(
    [order_option_id] => 56
    [order_option_id] => 55
     )

    [order_id] => 118
    [order_product_id] => 52
    [product_option_id] => 745
    [product_option_value_id] => 1104
    [options] = > 
    Array(
    [name] => Цветове:
    [value] => Черен
     )
)
  

то, что я пытался сделать, это зациклить их и поместить в один массив

 foreach ($query->rows as $data) {
                    $data['info_options'][] = array(
                        'options'       => array(
                        'option_name'           => $data['name'],
                        'value_name'            => $data['value']
                        ),
                        'quantity'  => $data['quantity'],
                        'product_link'  => HTTP_CATALOG.'index.php?route=product/productamp;product_id=' . $product_id,
                        'product_name'  => $data['product_name']
                    );
                }
  

но результат все еще не решетчатый

 Array
(
[0] => Array
    (
        [options] => Array
            (
                [option_name] => Цветове:
                [value_name] => Черен
            )

        [quantity] => 1
        [product_name] => aapp
    )

[1] => Array
    (
        [options] => Array
            (
                [option_name] => new input
                [value_name] => 3
            )

        [quantity] => 1
        [product_name] => aapp
    )

[2] => Array
    (
        [options] => Array
            (
                [option_name] => Custom-Input
                [value_name] => 5
            )

        [quantity] => 1
        [product_name] => aapp
    )

)
  

ОБНОВИТЬ
наконец-то я получаю то, что мне было нужно

 Array
(
[op] => Array
    (
        [0] => Array
            (
                [name] => Цветове:
                [value] => Черен
            )

        [1] => Array
            (
                [name] => new input
                [value] => 3
            )

        [2] => Array
            (
                [name] => Custom
                [value] => 5
            )

    )

[name] => aapp
[quantity] => 1
)
  

то, что я сделал, это 2 запроса, один для параметров и один для информации rest
затем я зацикливаю запрос параметров и помещаю результат в один массив, затем зацикливаю второй запрос и помещаю в новый массив, куда я добавляю и массив параметров

Комментарии:

1. Это не обычный формат — для достижения этого вам нужно написать некоторый код

2. что вы имеете в виду?

3. Именно то, что я сказал: ожидаемый формат не настолько распространен, чтобы его можно было достичь с помощью встроенных функций PHP. Запрос к базе данных всегда будет возвращать полные строки вместо ожидаемой вами смешанной формы — но написание некоторого кода для преобразования массива не должно быть слишком сложным. Попробуйте и приложите свою попытку к вопросу, если у вас возникнут какие-либо проблемы с этим

4. я что-то сделал, но все еще не получаю то, что хочу, я обновляю вопрос

5. Это зависит от правил в вашей системе, которые вы не добавили к вопросу. Попробуйте и поделитесь этим, если что-то не сработает