簡體   English   中英

如何遍歷數組並將每個元素作為參數傳遞給php中的構造函數

[英]How to iterate through array and pass each element as parameter to a constructor in php

我想遍歷一個數組,並使每個元素作為參數傳遞給構造函數。 這是我的例子

[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還是不可以呢? 謝謝你的幫助

如您所建議的,帶有多個參數的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 )。

使用array_combine更容易。

您可以執行以下操作:

$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);
   }

假設您給定的數組是有序的,並且具有相同數量的數據,即對:

遍歷您的數據:

$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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM