symfony php查询结果相乘

symfony php查询结果相乘,php,arrays,symfony,Php,Arrays,Symfony,我是symfony的新手,我正在尝试构建一个如下所示的阵列: ['10'=>100,'100'=>40,'200'=>10,'reis'=>1] 数据显然来自我的数据库,因此我的查询如下: $chances = $conn->fetchAll("SELECT * FROM prices"); 这将生成一个包含以下对象的数组: [{"id":"1","price":"10","amount":"1000","chance":"0,5"}, {"id":"2","price":"100","

我是symfony的新手,我正在尝试构建一个如下所示的阵列:

['10'=>100,'100'=>40,'200'=>10,'reis'=>1]

数据显然来自我的数据库,因此我的查询如下:

$chances = $conn->fetchAll("SELECT * FROM prices");
这将生成一个包含以下对象的数组:

[{"id":"1","price":"10","amount":"1000","chance":"0,5"},
{"id":"2","price":"100","amount":"100","chance":"0,2"},
{"id":"3","price":"200","amount":"10","chance":"0,05"},
{"id":"4","price":"reis","amount":"1","chance":"0,005"},
{"id":"5","price":"noprice","amount":"0","chance":"0,245"}]
现在我需要将几率乘以200并填充我的数组,我这样做:

foreach ($chances as $chance){
  $p = $chance['price'];
  $c = (200 * $chance['chance']);
  $chancesArr[] = array($p => $c);
}
但由于某些原因,我得到的结果总是0

有人知道为什么乘法不起作用吗

我还有一个小问题,$chancesArr是一个多维数组,但它应该是一个带键的数组,因为$p和值是$c

我的结果是:

[{“10”:0},{“100”:0},{“200”:0},{“reis”:0}]

我的目标是:

['10'=>100,'100'=>40,'200'=>10,'reis'=>1]

任何帮助都将不胜感激


非常感谢

我认为这是因为数字上的逗号,试着用点来代替逗号

$chances = '[{"id":"1","price":"10","amount":"1000","chance":"0,5"},
{"id":"2","price":"100","amount":"100","chance":"0,2"},
{"id":"3","price":"200","amount":"10","chance":"0,05"},
{"id":"4","price":"reis","amount":"1","chance":"0,005"},
{"id":"5","price":"noprice","amount":"0","chance":"0,245"}]';

$chances = json_decode($chances, true);

foreach ($chances as $chance){
    $p = $chance['price'];
    $c = 200 * str_replace(',', '.', $chance['chance']);
    $chancesArr[$p] = $c;
}

echo json_encode($chancesArr);

输出:
{“10”:100,“100”:40,“200”:10,“reis”:1,“noprice”:49}

我认为这是因为数字中的逗号,尝试用点替换逗号

$chances = '[{"id":"1","price":"10","amount":"1000","chance":"0,5"},
{"id":"2","price":"100","amount":"100","chance":"0,2"},
{"id":"3","price":"200","amount":"10","chance":"0,05"},
{"id":"4","price":"reis","amount":"1","chance":"0,005"},
{"id":"5","price":"noprice","amount":"0","chance":"0,245"}]';

$chances = json_decode($chances, true);

foreach ($chances as $chance){
    $p = $chance['price'];
    $c = 200 * str_replace(',', '.', $chance['chance']);
    $chancesArr[$p] = $c;
}

echo json_encode($chancesArr);

输出:
{10:100,100:40,200:10,reis:1,noprice:49}

您说得对,先生!如果我的结果不是一个包含对象的数组,你知道我如何生成1个数组吗?嘿,我知道你在做什么,但由于某种原因,我得到了0 1 2 reis而不是10 100 200 reis。这很奇怪,我已经输入了完整的代码,我的服务器上的一切都很好。我很抱歉,我只是有点愚蠢,做错了什么!对不起,你说得对,先生!如果我的结果不是一个包含对象的数组,你知道我如何生成1个数组吗?嘿,我知道你在做什么,但由于某种原因,我得到了0 1 2 reis而不是10 100 200 reis。这很奇怪,我已经输入了完整的代码,我的服务器上的一切都很好。我很抱歉,我只是有点愚蠢,做错了什么!我道歉