求和字符串变量

时间:2013-03-30 00:01:45

标签: php

这里有大脑冻结。 这是7个字符串变量的var_dump()...

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);

和此:

$totalprice = (int)$baseprice + (int)$procprice + (int)$memprice + (int)$graprice + (int)$hdprice + (int)$optprice + (int)$nicprice;
没有快乐......我知道我的前额会因为dopeslap而受伤,但我已经准备好了解疼痛会给我的痛苦。

要添加nore详细信息,此脚本(位于Fabrik,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个中的每一个都是从下拉列表中选择的表单字段...

是用于“配置器”的计算机组件,用于选择计算机,处理器,内存,图形,硬盘驱动器,光盘和NIC的样式。

“delta”选项只是基本价格的“加法器”。

希望有所帮助。

1 个答案:

答案 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”元素,请使用 - &gt;指向正确的元素:

$baseprice[0]->base_price

要添加字符串,可以转换为int:

(int) $baseprice[0]->base_price

或使用intval:

intval($baseprice[0]->base_price)

作为int,您应该只需使用您在代码中演示的+字符即可添加。