Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Поменять значения в одном массиве из другого.

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

b7music



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день. Помогите, пожалуйста,  реализовать.
Есть 2 массива
$id_price
вывод:

Код:
 
Array
(
    [0] => Array
        (
            [PRODUCT_ID] => 17215
            [PRICE] => 3500.00
        )
 
    [1] => Array
        (
            [PRODUCT_ID] => 21020
            [PRICE] => 1500.00
        )
 
)
 

и второй:
$inBasket
вывод:

Код:
 
Array
(
    [0] => Array
        (
            [PRODUCT_ID] => 21020
            [PRICE] => 1050.0000
            [BASE_PRICE] => 1050.0000
        )
 
    [1] => Array
        (
            [PRODUCT_ID] => 17215
            [PRICE] => 3200.0000
            [BASE_PRICE] => 3200.0000
 

Есть обход массива и заполнение значений:

Код:
 
 foreach ($basket as $basketItem)
                    {
                        $basketItem->setFields(array(
                            'CUSTOM_PRICE' => 'Y',
                            'PRICE' => "",
                            'BASE_PRICE' => "",
                        ));
 
                    }
 

Не могу понять каким образом сделать условие чтобы во второй массив($inBasket) передавались значения PRICE из первого ($id_price). Единственное что у них общего это PRODUCT_ID.
Дали подсказку
"Из $basketItem вы можете вызвать getField("PRODUCT_ID") и уже по нему определять"
Но не могу понять что делать.

Всего записей: 672 | Зарегистр. 04-03-2010 | Отправлено: 12:27 13-02-2018 | Исправлено: b7music, 12:29 13-02-2018
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
b7music
переделываете один массив так, что бы идентификатор был ключом.
потом перебираете второй массив, берете идентификатор, по нему получаете элемент из первого массива.  
можно без переделки, но тогда вам придется каждый раз перебирать первый в поиске нужного элемента

Всего записей: 15023 | Зарегистр. 20-09-2014 | Отправлено: 20:32 13-02-2018
b7music



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо. Вроде с массивами разобрался.  
Подскажите, пожалуйста, еще такой момент.
Вот есть у меня на выходе массив:

Код:
 
Array
(
    [17215] => 3200
    [21020] => 1050
     
)
 

 
И в цикле выполняется

Код:
 
                            $basketItem->setFields(array(
                                //'PRODUCT_ID' => '',  
                                'CUSTOM_PRICE' => 'Y',
                                'LID' => Bitrix\Main\Context::getCurrent()->getSite(),
                                //'PRICE' => '',
                                'CURRENCY' => Bitrix\Currency\CurrencyManager::getBaseCurrency(),
                            ));
 

 
где PRODUCT_ID это 17215 и 21020
а PRICE это 3200 и 1050 соответственно.
Каким образом это передать в $basketItem?

Всего записей: 672 | Зарегистр. 04-03-2010 | Отправлено: 11:42 14-02-2018
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
b7music

Цитата:
Каким образом это передать в $basketItem?


Код:
foreach($arr1 as $id => $price)
 $basketItem->setFields(array(  
                                'PRODUCT_ID' => $id,  
                                'CUSTOM_PRICE' => 'Y',  
                                'LID' => Bitrix\Main\Context::getCurrent()->getSite(),  
                                'PRICE' => $price,  
                                'CURRENCY' => Bitrix\Currency\CurrencyManager::getBaseCurrency(),  
                            ));  

Всего записей: 15023 | Зарегистр. 20-09-2014 | Отправлено: 03:08 22-02-2018
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Поменять значения в одном массиве из другого.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru