【发布时间】:2016-04-01 17:13:54
【问题描述】:
我有一个自定义函数array_sequence_merge()。在func_get_args() 的帮助下,可以将任意数量的参数传递给函数,只要它们都是 ARRAYS。
问题是,需要传入函数的数组是用未知大小的 WHILE 循环动态创建的:
while($n < count($site)) {
$siten = $site[$n];
$sql = "SELECT url FROM `".$$siten->domain."`";
$result = $con->query($sql);
while($row = $result->fetch_array()){
${$siten."_url_list"} = $row['url'];
}
}
所以。例如,如果$site 数组中有 3 个元素,则生成的 3 个数组将是:
$element1_url_list
$element2_url_list
$element3_url_list
现在必须将它们传递给array_sequence_merge() 函数来获取:
array_sequence_merge($element1_url_list, $element2_url_list, $element3_url_list);
每次$site数组中的元素数量不同,动态创建的XXXXX_url_list数组的数量也不同。
问题:如何将这些数组变量传递给函数?
我采用的方法是在 WHILE 循环中创建后立即将动态创建的数组变量名存储在临时数组中。但我不知道接下来该怎么做......如果我能做一些“参数列表连接”,比如:
$arguments = $temporary_array[0];
while($n < count($temporary_array)) {
$arguments .= ",".$temporary_array[$n];
}
array_sequence_merge($arguments);
只是不知道怎么做才对……
【问题讨论】:
-
什么是array_sequence_merge(),它有什么作用?
-
它只接受一维数组作为参数,并且将单个多维数组作为参数传递是行不通的。这是link to function
标签: php arrays function variables parameter-passing