与此Javascript片段等效的PHP

与此Javascript片段等效的PHP,javascript,php,Javascript,Php,JavaScript: var chartData = []; for (var i = 0; i< data.prices.length; i++) { chartData.push ({ "date": data.prices[i][0], "value": data.prices[i][1], "volume": data.total_volumes[i][1] })

JavaScript:

var chartData = [];
     for (var i = 0; i< data.prices.length; i++)
      {
        chartData.push
        ({
        "date": data.prices[i][0],
        "value": data.prices[i][1],
        "volume": data.total_volumes[i][1]
        });  
      }
我的尝试:

$chartData = [];
    $length = count($data->prices);

    for ($i = 0; $i < $length; $i++)     
    {
    $chartData[] = array($data->prices[$i][0],$data->prices[$i][1],$data->total_volumes[$i][1]);
    }  

我试图用php处理来自API服务器端的数据,然后用javascript对数据进行编码。我在日期:value:和volume:将这个javascript片段转换为PHP时遇到了麻烦:我不知道在PHP中会有什么等价物。看起来它们好像是javascript中的标签,用于将数据推送到数组?在PHP中,如何为推送到数组的数据赋予相同的标签

非常接近,您可以通过以下操作在PHP中定义键和值:

$chartData[] = array(
   "date"   => $data->prices[$i][0],
   "value"  => $data->prices[$i][1],
   "volume" => $data->total_volumes[$i][1]
);
这里有一个聪明的方法:

$chartData = array_map(function($price,$volume) {
    return array(
        "date" => $price[0],
        "value" => $price[1],
        "volume" => $volume[1]
    );
}, $data->prices, $data->total_volumes);

是否有任何错误?更改$chartData=[];到$chartData=array;看看这是否有帮助。至少看一个输入数据的例子和一个你想从代码中输出什么的例子总是很有用的。你使用的是PHP5还是PHP7?PHP5不接受chartData=[]而是接受chartData=arrayYou在文档中拥有您所需要的一切,我想说的是,这是一种非常好的方法,因为它并不比任何其他方法更聪明。我建议OP研究JavaScript和php中闭包之间的显著差异,特别是在作用域方面,因为如果您事先不知道的话,这可能会让人非常沮丧。@Christopher Fusing yes。。。在您发现使用$scopevar:d之前,当然“array”和“”可以分别替换为“[”和“]”,这是定义数组的简写版本。