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

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

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

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

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

b7music



Full 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") и уже по нему определять"
Но не могу понять что делать.

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

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

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



Full 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?

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

Gold 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(),  
                            ));  

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

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

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru