Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用键和值动态构建PHP数组_Php_Arrays_Key - Fatal编程技术网

如何使用键和值动态构建PHP数组

如何使用键和值动态构建PHP数组,php,arrays,key,Php,Arrays,Key,为项目使用PHPGraphlib 下面将数据添加到图表中。阵列值将是y轴值 $graph->addData(array(100,12,43,342,9)); 如果阵列具有关键点,则关键点将是相应的x轴值 $data = array("1" => 100, "2" => 12, "3" => 43, "4" => 342, "5" => 9); 我需要动态构建$data数组,从键值“1”开始,并从用逗号分隔的变量中赋值。值的数量可以更改。例如: $value

为项目使用PHPGraphlib

下面将数据添加到图表中。阵列值将是y轴值

$graph->addData(array(100,12,43,342,9));
如果阵列具有关键点,则关键点将是相应的x轴值

$data = array("1" => 100, "2" => 12, "3" => 43, "4" => 342, "5" => 9);
我需要动态构建$data数组,从键值“1”开始,并从用逗号分隔的变量中赋值。值的数量可以更改。例如:

$values="100,12,43,342,9,22,33";
我可以将数据分解成一个数组

$splits = explode(",",$values);
现在我有了一些值。那么,如何编写一个循环,将这些值分配给增量键,以便$data数组基本上是:

$data = array("1" => 100, "2" => 12, "3" => 43, "4" => 342, "5" => 9, "6" => 22, "7"=> 33);
像这样的

<?php
$values="100,12,43,342,9,22,33";
$splits = explode(",",$values);
$data = array();
for ($x = 0; $x < count($splits); $x++) {
    $data[$x+1] = intval($splits[$x],10);    
}

var_dump($data);
像这样的东西

<?php
$values="100,12,43,342,9,22,33";
$splits = explode(",",$values);
$data = array();
for ($x = 0; $x < count($splits); $x++) {
    $data[$x+1] = intval($splits[$x],10);    
}

var_dump($data);

这应该将数组作为索引数组启动

<?php
$values = "100,12,43,342,9,22,33";
$splits = explode(",", $values);
$data = array_combine(range(1, count($splits)), array_values($splits));
$data = array_map('intval', $data); // converts values to int

var_dump($data);

这应该将数组作为索引数组启动

<?php
$values = "100,12,43,342,9,22,33";
$splits = explode(",", $values);
$data = array_combine(range(1, count($splits)), array_values($splits));
$data = array_map('intval', $data); // converts values to int

var_dump($data);

您是否查看了php文档中的每个循环并在循环时创建一个新数组您是否查看了php文档中的每个循环并在循环时创建一个新数组这就是我这样做的原因,但它不起作用。因此,我添加了var_dump,并意识到数据被分配为字符串,而不是整数(PHPGraphlib需要)。所以我对你的代码做了一个修改,现在可以了。非常感谢。更改的$data[$x+1]=(int)$splits[$x];很好的黄金,意识到可能是这种情况,所以检查编辑您也可以使用floatval,snap!这就是我这么做的原因,但它不起作用。因此,我添加了var_dump,并意识到数据被分配为字符串,而不是整数(PHPGraphlib需要)。所以我对你的代码做了一个修改,现在可以了。非常感谢。更改的$data[$x+1]=(int)$splits[$x];很好的黄金,意识到可能是这种情况,所以检查编辑您也可以使用floatval,snap!没问题,你能把其中一个答案标记为解决方案吗?我喜欢你的答案,因为它使用了标准的php函数,但是由于每个函数都必须以某种方式循环,我测试了你的代码和我的代码,使用你的方法性能要慢得多没有问题,我喜欢你的答案,因为它使用了标准的php函数,但是由于每个函数都必须以某种方式循环,我测试了你的代码和我的代码,使用你的方法性能要慢得多