[英]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.