我想遍历一个数组,并将每个元素作为参数传递给构造函数。 这是我的例子
[user_by_province] => Array
(
[label] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => e
[5] => f
)
[count] => Array
(
[0] => 2
[1] => 1
[2] => 1
[3] => 1
[4] => 7
[5] => 1
)
)
这是构造函数:
$pc = new C_PhpChartX(array(array('a','2'),
array('b','1'),
array('c','1'),
array('d','1'),
array('e','7'),
array('f','1')));
所以我怎么能用php感谢任何帮助,我们可以用array_map
或不吗?谢谢你的帮助
答案 0 :(得分:3)
正如您所建议的那样array_map
有多个参数可能是一个很好的解决方案。
<?php
$userByProvince = array(
'label' => array('a', 'b', 'c', 'd', 'e', 'f'),
'count' => array('1', '2', '3', '4', '5', '6'),
);
function combine($arg1, $arg2)
{
return array($arg1, $arg2);
}
$arguments = array_map('combine', $userByProvince['label'], $userByProvince['count']);
$pc = new C_PhpChartX($arguments);
如果您使用的是PHP 5.3,您甚至可以使用lambda表达式替换该函数,以使代码更紧凑(请参阅docs)。
答案 1 :(得分:0)
使用array_combine更容易。
答案 2 :(得分:0)
你可以这样做:
$my_array=array("user_by_province"=>array("label"=>array('a','b','c','d','e','f'),"count"=>array(2,1,1,1,7,1)));
$new_array=array();
for($i=0;$i< count($my_array['user_by_province']['label']);$i++){
$new_values=array();
array_push($new_values,$my_array['user_by_province']['label'][$i],$my_array['user_by_province']['count'][$i]);
array_push($new_array,$new_values);
}
答案 3 :(得分:0)
假设您的给定数组是有序的并且具有相同数量的数据,即对:
循环数据:
$input = array("user_by_province"
=> array("label" => array('a', 'b', 'c'),
"count" => array(1, 2, 3)));
$combined = array();
for($i = 0; $i < count($input['user_by_province']['label'] && $i < count($input['user_by_province']['count']; $i++)
{
$combined[] = array($input['user_by_province']['label'][$i], $input['user_by_province']['count'][$i]);
}
$pc = new C_PhpChartX($combined);