@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. У меня получилось только заголовок получить, остальное не получается. Буду рад, если поможете. Спасибо
  • Вопрос задан
  • 554 просмотра
Пригласить эксперта
Ответы на вопрос 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. В документации примеров достаточно, думаю сами разобраться что там к чем сможете.

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
25 апр. 2024, в 15:31
70000 руб./за проект
25 апр. 2024, в 15:26
15000 руб./за проект
25 апр. 2024, в 15:13
3000 руб./за проект