it_proger29
@it_proger29
Битрикс

Как сделать for внутри array?

Здравствуйте, как цикл заставить работать внутри массива?

<?php 
$arr_tovar = $result->products;
$api_response = wp_remote_post( $url_site.'/wp-json/wc/v3/products', array(
	'headers' => array(
	   'Authorization' => 'Basic ' . base64_encode( 'admin:123123123' )
    ),
/*
   'body' => array(
	   'name' => 'My test2', 
	   'status' => 'pending', 
	   'categories' => array(
		   array( 
			   'id' => 15 
		   )
	   ),
	   'regular_price' => '9.99' 
	   // more params http://woocommerce.github.io/woocommerce-rest-api-docs/?shell#product-properties
   )*/
   
   for ($i = 1; $i <= count($result->products); $i++)
        {
        $hi_products[$i] = array(
        'name' => $arr_tovar[$i]->name, 
        'status' => 'pending', 
        'categories' => array(
            array( 
                'id_iiko_категории' => $arr_tovar[$i]->productCategoryId 
            )
        ),
        'regular_price' => $arr_tovar[$i]->price );
        }
) );

$body = json_decode( $api_response['body'] );
if( wp_remote_retrieve_response_message( $api_response ) === 'Created' ) {
   echo 'The product ' . $body->name . ' has been created';
}

print_r( $body );

?>
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
rpsv
@rpsv
делай либо хорошо, либо никак
Никак. Формируйте параметры функции, а потом отправляйте:
код
$arr_tovar = $result->products;
$params = [
    'headers' => array(
        'Authorization' => 'Basic ' . base64_encode( 'admin:123123123' )
    ),
    'body' => [],
];

foreach ($arr_tovar as $item) {
    $params['body'][] = array(
        'name' => $item->name, 
        'status' => 'pending', 
        'categories' => array(
            array( 
                'id_iiko_категории' => $item->productCategoryId 
            )
        ),
        'regular_price' => $item->price
    );
}

$api_response = wp_remote_post( $url_site.'/wp-json/wc/v3/products', $params);

$body = json_decode( $api_response['body'] );
if( wp_remote_retrieve_response_message( $api_response ) === 'Created' ) {
   echo 'The product ' . $body->name . ' has been created';
}

print_r( $body );

И советую почитать про кодестайл: https://www.php-fig.org/psr/psr-1/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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