我有两个元素,其CREATE OR REPLACE FUNCTION save_data()
RETURNS trigger
AS $$
BEGIN
INSERT INTO table_copy (
copy_a,
copy_b,
copy_c,
copy_d)
VALUES (
NEW."main_a",
NEW."main_b",
NEW."main_c",
NEW."main_d"
);
--Since value in table_sub1.sub_c is the same value in table_main.main_a
PERFORM sub_c FROM table_sub1 WHERE sub_c = NEW.main_a;
IF FOUND THEN UPDATE table_copy SET copy_e = ('link_to_sub1_here');
END IF;
--Since value in table_sub2.sub2_c is also the same value in table_main.main_a
PERFORM sub2_c FROM table_sub2 WHERE sub2_c = NEW.main_a;
IF FOUND THEN UPDATE table_copy SET copy_f = ('link_to_sub2_here');
END IF;
RETURN NEW;
END $$ LANGUAGE plpgsql;
ALTER FUNCTION save_data() OWNER TO postgres;
DROP TRIGGER trigger_save_data ON "table_main";
CREATE TRIGGER trigger_save_data BEFORE INSERT OR UPDATE
ON "table_main" FOR EACH ROW EXECUTE PROCEDURE save_data();
的值为postgres=# INSERT INTO table_sub2 VALUES ('cdef', 'abv', 'abcde', 'a12');
INSERT 0 1
postgres=# INSERT INTO table_sub1 VALUES ('cdeb', 'abv', 'abcde', 'a12');
INSERT 0 1
postgres=# INSERT INTO table_main (main_a, main_b, main_c, main_d) VALUES ('abcde', 'bbb', 'ccc', 'ddd');
INSERT 0 1
postgres=# SELECT * FROM table_copy;
id | copy_a | copy_b | copy_c | copy_d | copy_e | copy_f | copy_g
----+--------+--------+--------+--------+-------------------+-------------------+--------
6 | abcde | bbb | ccc | ddd | link_to_sub1_here | link_to_sub2_here |
(1 row)
postgres=#
我希望获得member
5
+ member
= 10
输出应 10
这是我的数组
[member] => 5
这是我的代码:
[member] => 5
答案 0 :(得分:2)
这有用吗?
$sum = 0;
foreach ($result as $res) {
$sum += $res['member'];
}
echo $sum;
答案 1 :(得分:1)
替代解决方案,array_sum
& array_map
函数
echo array_sum(array_map(function($i){return $i["member"];},$result['content']));