2013-03-30 2 views
0

Здесь есть мозг. Это var_dump() для 7 строковых переменных ...Суммируя переменные String

array(1) { [0]=> object(stdClass)#635 (1) { ["base_price"]=> string(3) "449" } } 
array(1) { [0]=> object(stdClass)#445 (1) { ["option_delta"]=> string(2) "15" } } 
array(1) { [0]=> object(stdClass)#639 (1) { ["option_delta"]=> string(2) "29" } } 
array(1) { [0]=> object(stdClass)#448 (1) { ["option_delta"]=> string(2) "19" } } 
array(1) { [0]=> object(stdClass)#447 (1) { ["option_delta"]=> string(2) "39" } } 
array(1) { [0]=> object(stdClass)#446 (1) { ["option_delta"]=> string(2) "34" } } 
array(1) { [0]=> object(stdClass)#449 (1) { ["option_delta"]=> string(2) "34" } } 

мне нужна сумма этих переменных, и подошли к нему так:

$totalprice = $baseprice + $procprice + $memprice + $graprice + $hdprice + $optprice + $nicprice; 

и это:

$totalprice = ($baseprice + $procprice + $memprice + $graprice + $hdprice + $optprice + $nicprice); 

и это:

без радости ... Я знаю, что мой лоб будет ранен из допинга, но я готов к облегчению, которое мне даст боль.

Чтобы добавить NORE детали, этот скрипт (который находится в Fabrik, формы/App Builder для Joomla) начинается:

<?php 
$typ = '{rw_inquiries___product_type_id_raw}'; 
$pro = '{rw_inquiries___selected_processor_raw}'; 
$mem = '{rw_inquiries___selected_memory_raw}'; 
$gra = '{rw_inquiries___selected_graphics_raw}'; 
$hd = '{rw_inquiries___selected_hd_raw}'; 
$opt = '{rw_inquiries___selected_optical_raw}'; 
$nic = '{rw_inquiries___selected_nic_raw}'; 
$db =&JFactory::getDBO(); 
$db->setQuery("SELECT `base_price` FROM `rw_product_types` where `id` = $typ"); 
$baseprice = $db->loadObjectList(); 
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $pro"); 
$procprice = $db->loadObjectList(); 
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $mem"); 
$memprice = $db->loadObjectList(); 
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $gra"); 
$graprice = $db->loadObjectList(); 
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $hd"); 
$hdprice = $db->loadObjectList(); 
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $opt"); 
$optprice = $db->loadObjectList(); 
$db->setQuery("SELECT `option_delta` FROM `rw_options` where `id` = $nic"); 
$nicprice = $db->loadObjectList(); 
$totalprice = $baseprice + $procprice + $memprice + $graprice + $hdprice + $optprice + $nicprice; 
?> 

каждые из 7 являются выборами от выпадающих полей формы ...

и являются компонентами компьютера для «конфигуратора», выбирающего стиль компьютера, процессора, памяти, графики, жесткого диска, оптического и сетевого адаптера.

опции «дельта» - это просто «сумматоры» по базовой цене.

надеюсь, что это поможет.

+1

Кажется, что они находятся в массиве ... и вы обращаетесь к ним с помощью обычных строковых переменных? – Tushar

+0

Просьба предоставить больше кода о том, как вы назначили переменные. – fyrye

+0

вы можете указать нам имя переменной? –

ответ

0

Вам необходимо получить доступ к данным внутри возвращаемого объекта, а не только к самому объекту.

$totalprice = ((int) $baseprice[0]->base_price + (int) $procprice[0]->option_delta); 

Это должно дать вам базовое дополнение элементов.

Это выводится путем просмотра объекта. Возьмите $ baseprice, например:

array(1) { [0]=> object(stdClass)#635 (1) { ["base_price"]=> string(3) "449" } } 

Вы знаете, что это массив с одним объектом в нем, как указано в массиве (1) в самом начале. Таким образом, вы получаете доступ к этому объекту, говоря:

$baseprice[0] 

Затем вы видите содержимое между фигурными скобками являются [0] => object(...) что означает, что первый элемент является объектом. Чтобы получить элемент «BASE_PRICE» в этом объекте вы используете ->, чтобы указать на правый элемент:

$baseprice[0]->base_price 

Для добавления строк можно привести в качестве ИНТ:

(int) $baseprice[0]->base_price 

или использовать intval:

intval($baseprice[0]->base_price) 

как int, вы можете добавить просто, используя символ +, как вы продемонстрировали в своем коде.

+0

Они исходят из этого кода: – ranwilli

+0

обновлено. Вы должны использовать этот пример, чтобы изменить свой код. –

+0

Brilliant! работает как прелесть - Спасибо! – ranwilli

Смежные вопросы