不确定如何解释此问题或在此问题中搜索答案。
我正在创建一个要发送的表单,并希望使用现有数组并将其推送到新数组而不会影响旧数组。
这就是我现在正在做的事情:
$required_fields = array( "full_name", "email", "phone", "preferred_date" );
$whitelist = array_push( $required_fields, "patient_type", "appointment_time", "comments");
但是这样做会改变$ required字段数组。如何在不影响$ required_fields的情况下将这些现有值推送到$ whitelist数组?
答案 0 :(得分:2)
我想你可能需要array_merge
:
$whitelist = array_merge( $required_fields, array(
"patient_type",
"appointment_time",
"comments"
));
这将$required_fields
单独留下,$whitelist
将是:
array(
"full_name",
"email",
"phone",
"preferred_date",
"patient_type",
"appointment_time",
"comments"
);
答案 1 :(得分:1)
您可能想要使用array_merge。请注意,array_merge
仅接受array
类型的参数。
相反,当您使用array_push
时,第一个参数本身会被修改。如果您查看array_push的文档,第一个参数将通过引用传递,并自行修改,这就是为什么在您的情况下$required_fields
正在被修改。
因此,正确的代码应该是:
$required_fields = array( "full_name", "email", "phone", "preferred_date" );
$whitelist = array_merge( $required_fields, array("patient_type", "appointment_time", "comments"));
答案 2 :(得分:1)
http://php.net/manual/en/function.array-push.php
如果你看一下array_push的文档,它实际上会修改第一个参数,只返回数组中新元素的数量。
您要做的是复制required_fields数组,然后添加一些新元素。您可以使用array_merge函数来完成此操作。