@melishev

Как зациклить PHP массив и встроить в него данные из других массивов?

Здравствуйте товарищи.

В работе с Яндекс Кассой (Юкассой) столкнулся с новой задачей - отправлять чеки в Яндекс.
В документации Яндекс Кассы говорится, что запрос на PHP должен иметь подобный вид:
"receipt" => array(
                "customer" => array(
                    "full_name" => "Иванов Иван Иванович",
                    "phone" => "79000000000",
                ),
                "items" => array(
                    array(
                        "description" => "Наименование товара 1",
                        "quantity" => "2.00",
                        "amount" => array(
                            "value" => "250.00",
                            "currency" => "RUB"
                        ),
                        "vat_code" => "2",
                        "payment_mode" => "full_prepayment",
                        "payment_subject" => "commodity"
                    ),
                    array(
                        "description" => "Наименование товара 2",
                        "quantity" => "1.00",
                        "amount" => array(
                            "value" => "100.00",
                            "currency" => "RUB"
                        ),
                        "vat_code" => "2",
                        "payment_mode" => "full_prepayment",
                        "payment_subject" => "commodity"
                    )
                )
            )

Если с первыми полями всё понятно, то дальше возникает вопрос, у незнакомого с PHP разработчик: "Как зациклить массив items в зависимости от товаров в корзине?"
Мой интернет магазин выдает мне данные из корзины в виде массива.
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
artzolin
@artzolin
php, WordPress разработка сайтов artzolin.ru
// стартовый массив
$items = [
	1 => array(
		"description" => "Наименование товара 1",
		"quantity" => "2.00",
		"value" => "250.00",
		"currency" => "RUB",
	),
	2 => array(
		"description" => "Наименование товара 2",
		"quantity" => "1.00",
		"value" => "100.00",
		"currency" => "RUB",
	)
];

// пересобираем для отправки
$array['receipt']['customer']['full_name'] = 'Иванов Иван Иванович';
$array['receipt']['customer']['phone'] = '79000000000';

foreach ( $items as $key => $item ) {
	$array['receipt']['items'][] = [
		"description" => $item['description'],
		"quantity" => $item['quantity'],
		"amount" => array(
			"value" => $item['value'],
			"currency" => $item['currency'],
		),
		"vat_code" => "2",
		"payment_mode" => "full_prepayment",
		"payment_subject" => "commodity"
	];
}

var_dump($array);


В первом массиве $items у вас должны быть данные из корзины в виде массива. В цикле значения заменяете на эти данные, будет что-то типо $item['description'], $item['quantity'] и т.д.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы