如何遍历数组并将每个元素作为参数传递给php中的构造函数

时间:2015-09-02 06:35:09

标签: php arrays

我想遍历一个数组,并将每个元素作为参数传递给构造函数。 这是我的例子

[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或不吗?谢谢你的帮助

4 个答案:

答案 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);