Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP如何传递所有数组';s值作为函数的不同参数?_Php_Arrays - Fatal编程技术网

PHP如何传递所有数组';s值作为函数的不同参数?

PHP如何传递所有数组';s值作为函数的不同参数?,php,arrays,Php,Arrays,假设我有一个这样的数组 $update = array( 'field1' => 'one', 'field2' => 'two', 'field3' => 'three' ); 然后我有一个函数,比如说write(),它接受无限数量的参数,比如write($thing\u一,$thing\u二,$thing\u三,$thing\u四) 所以我知道我可以传递参数,比如write($update[0],$update[1],$update[2]),但在实际例子中,$

假设我有一个这样的数组

$update = array(
  'field1' => 'one',
  'field2' => 'two',
  'field3' => 'three'
);
然后我有一个函数,比如说
write()
,它接受无限数量的参数,比如
write($thing\u一,$thing\u二,$thing\u三,$thing\u四)

所以我知道我可以传递参数,比如
write($update[0],$update[1],$update[2])
,但在实际例子中,
$update
中有很多键和值,我想做的是找到一种方法,将参数从这个数组传递给函数,这样就可以像手动键入
update($update[0],$update[1],$update[2])


我希望有人能帮助我。谢谢。

为什么不将数组本身传递给write函数:

$update = array(
  'field1' => 'one',
  'field2' => 'two',
  'field3' => 'three'
);

write($update);

应该可以很好地完成这项任务。

为什么不传递整个阵列呢?在我看来,部分原因是您设置应用程序逻辑的方式让您感到困惑。这真的不应该是一个问题,因为人们通常只是将一组参数作为一个整体进行传递。我建议您在这里重新考虑您的逻辑(或者进一步解释它,以便我们提供建议),只需将
write()
函数设置为接收一个变量,然后通过indexwrite不接受数组在函数内部单独检索。它接受许多论点。为了更好地理解这一点,它来自mysqli类。示例:$dbi->prepare(“插入到
表中”(
名称
姓氏
)value(?,;)”->execute('john','davids');所以我可以从数组中创建(
name
姓氏
)和(?),但不能创建“john”和“davids”作为execute函数的参数。感谢使用foreach来处理整个数组值…因为php是类型安全的吗?yes write不接受数组。它接受许多论点。为了更好地理解这一点,它来自mysqli类。示例:$dbi->prepare(“插入到
表中”(
名称
姓氏
)value(?,;)”->execute('john','davids');所以我可以从数组中创建(
name
姓氏
)和(?),但不能创建“john”和“davids”作为execute函数的参数。thanks@ftom2尝试将数组传递给
echo
。根据您的逻辑,它应该与传递单个值相同。@Kolink-我假设
write()
是他编写的函数,而不是内置函数,正如他所提到的,它接受许多参数,因此,只发送一个数组似乎更好,如果需要的话,可以稍微更改功能以适应它;$stmt=调用用户函数数组(数组($stmt,“execute”),$args);这是我的工作。谢谢$stmt=$this->dbi->prepare($sql);$stmt=调用用户函数数组(数组($stmt,“execute”),$args);