@mr_firuzinho

Как положить данные из одного массива в другой на php?

Есть массив $product:
WC_Product_Variable Object ( [children:protected] => Array (
                             [0] => 16623 
                             [1] => 16624 
                             [2] => 16625 
                             [3] => 16626 
                             [4] => 16627 
                             [5] => 16628 
                             [6] => 16629 
                             [7] => 16630 
                             [8] => 16631 
                             [9] => 16632 
                             [10] => 16633 
                             [11] => 16634 
                             [12] => 16635 
                             [13] => 16636 ) 
              [visible_children:protected] => Array ( 
                            [0] => 16623 
                            [1] => 16624 
                            [2] => 16625 
                            [3] => 16626 
                            [4] => 16627 
                            [5] => 16628 
                            [6] => 16629 
                            [7] => 16630 
                            [8] => 16631 
                            [9] => 16632 
                            [10] => 16633 
                            [11] => 16634 
                            [12] => 16635 
                            [13] => 16636 ) 
              [variation_attributes:protected] => Array ( 
                            [pa_derevo] => Array ( 
                                      [0] => sosna 
                                      [7] => buk ) 
              [pa_tsvet] => Array (
                             [0] => oranjeviy 
                             [1] => limonnyj 
                             [2] => malinoviy 
                             [3] => chernichnyj 
                             [4] => myatnyj 
                             [5] => belyj 
                             [6] => bez-pokraski ) )

У меня есть функция
$order = array(
        // Состав заказа
        'items' => array(
            array(
                'title' => 'Товар-1',
                'category' => 'Категория товара 1',
                'qty' => 1,
                'price' => 3500
            ),
            array(
                'title' => 'Товар-2',
                'category' => 'Категория товара 2',
                'qty' => 2,
                'price' => 1000
            ),
        ),
        // Информация о покупателе
        'details' => array(
            'firstname' => 'Иван',
            'lastname' => 'Иванов',
            'middlename' => 'Иванович',
            'email' => 'ivan@ivanov.com'
        ),
        'partnerId' => 'a06m00000018y7rAAA', // ID Партнера в системе Банка (выдается Банком)
        'partnerOrderId' => 'test_order_'.uniqid(), // Уникальный номер заказа в системе Партнера
    );

    // JSON-представление заказа
    $json = json_encode($order);

    // Base64-кодирование JSON-представления заказа
    $base64 = base64_encode($json);

    // Секретная строка для формирования подписи (выдается Банком)
    $secret = 'grid-secret-18y7r72a';

    /**
     * Функция формирования подписи заказа
     * @param $message Base64-представление заказа
     * @param $secretPhrase Секретная строка
     * @return string
     */
    function signMessage($message, $secretPhrase) {
        $message = $message.$secretPhrase;
        $result = md5($message).sha1($message);
        for ($i = 0; $i < 1102; $i++) {
            $result = md5($result);
        }
        return $result;
    }

    // Формирование подписи
    $sign = signMessage($base64, $secret);

Там где "состав заказа", мне нужно в этот массив занести заголовок, цену и кол-во из объекта $product. У меня получилось только заголовок получить, остальное не получается. Буду рад, если поможете. Спасибо
  • Вопрос задан
  • 585 просмотров
Пригласить эксперта
Ответы на вопрос 2
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Если это WooCommerce, то вероятно так
$order = array(
        // Состав заказа

        'items' => array(
            array(
                'title' => $product->get_title()

            ),
        ),
);
Ответ написан
kumaxim
@kumaxim
Web-программист
Во первых у Вас не массив, а какой-то объект.
Во вторых - для этой цели я использую функции array_map() / array_walk() / array_filter() из стандартной библиотеки PHP. В документации примеров достаточно, думаю сами разобраться что там к чем сможете.

Также в следующий раз форматируйте нормально дамп своих объектов, чтобы их прочесть можно было.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы