Php 如何将数组元素作为单独的参数展开为函数

Php 如何将数组元素作为单独的参数展开为函数,php,arrays,function,graph,Php,Arrays,Function,Graph,我有一个颜色数组,它具有动态值,这取决于数据库。现在,这些值在一个函数中是必需的,该函数只接受与此函数类似的值('para1'、'para2'、'para3'、'para4') 其中,param1到param4是数组中的颜色值。 问题是我如何以上述格式将这些值解析为该函数。只需要一个编程逻辑。语言是php 假设动态数组是color[]=('red','maroon','blue','green'); 这些值应该传递给这个函数,比如:setLineColor('red','maroon','blu

我有一个颜色数组,它具有动态值,这取决于数据库。现在,这些值在一个函数中是必需的,该函数只接受与此函数类似的值('para1'、'para2'、'para3'、'para4') 其中,param1到param4是数组中的颜色值。 问题是我如何以上述格式将这些值解析为该函数。只需要一个编程逻辑。语言是php

假设动态数组是color[]=('red','maroon','blue','green'); 这些值应该传递给这个函数,比如:setLineColor('red','maroon','blue','green')

我使用这个函数来创建图形 欢迎使用任何其他建议的库。请提供一个简单的示例。

您可以使用该函数

function($color[0], $color[1], $color[2], $color[3])

如果要调用对象的方法,可以使用以下方法:

<?php
$graph = new ...
$colors = array('red','maroon','blue','green');
call_user_func_array(array($graph, 'setLineColor'), $colors);
?>

由于PHP 5.6,您可以使用三点运算符:

setLineColor(...$colors);

最糟糕的答案…我想你没有读到颜色值不是固定的..它们根据数据库值而变化…我知道它们不是固定的-这就是为什么我要引用包含动态值的数组。如果你事先不知道值的数量,这个答案就不起作用。如果数组有,比如说,500个值,这也是一个糟糕的解决方案。谢谢Andrew,但这不是原始问题的一部分。我同意adam的观点。在这个问题中,参数的数量是已知的。所以这是最好的答案。在这种情况下,不需要调用“call_user_func_array”。是的,enrico…感谢您的富有成果的响应。对不起,我没有提到它是某个库的一种方法。非常好,就像
call_user_func_array
一样,看起来容易多了。如果您想将“fixed”参数与
fprintf(STDOUT,$format,$args)这样的数组相结合,那么它也很实用
setLineColor(...$colors);