php - Symfony 3.4:获取值和求和变量变量数组值
问题描述
原谅文字游戏。
我必须循环一个数组并对值求和,然后乘以价格(我已经知道该怎么做)。
该对象由 64 个字段组成,称为 val1、val2、val3 等。每个字段都有一个带有数量值的 simple_array。
我使用教义从数据库中获取这些数据。
$item = $this->getDoctrine()->getRepository(ExpertationsAdvanced::class)->findBy(['father' => $id]);
dump($item[0]->getVal1());
for($i = 1; $i < 64; $i++) {
dump(${'$item[0]->getVal' . $i . '()'});
$i++;
if(${'$item[0]->getVal' . $i . '()'} == null) {
$return = '0';
} else {
$return = array_sum(${'$item[0]->getVal' . $i . '()'} );
}
dump($return);
}
第一个转储返回我请求的数组,没有问题,但在for
循环中,我得到 erro Notice: Undefined variable: $item[0]->getVal1()
。
我想我使用了错误的逻辑,但可能工作时间太长了,看不到方法。
解决方案
首先,如果你有 64 个字段,你应该有(阅读文档了解更多信息):
for($i = 1; $i <= 64; $i++) {
次要的,您不需要$i
在循环内递增
$i++;
要获取值:
$item[0]->{"getVal{$i}"}();
// OR
$method = "getVal{$i}";
$item[0]->$method();
结果将是:
for($i = 1; $i <= 64; $i++) {
$array = $item[0]->{"getVal{$i}"}();
$return = is_array($array) ? array_sum($array) : 0;
dump($return);
}
推荐阅读
- node.js - 是否可以使用为 Node.js 中的每个函数传递的参数打印异常调用堆栈?
- jquery - Asp.net core visual studio,刷新页面忽略缓存
- reactjs - ReactJS 验证来自单个字段的值数组
- php - 尝试使用ajax将数组数据传递给php函数
- mysql - 将 ibd 文件导入 mariadb 时出错(连接被拒绝)
- angular - Angular Row 不显示使用 Ng-for 来显示 NgTemplate
- javascript - 多个页面上的一个导航栏
- python - Python套接字客户端:发送数据和接收结果
- wordpress - woocommerce_product_query 在家中不起作用
- api - 通过某种 API 更改 nginx/apache/lighttpd 站点配置文件