我正在做的是使用默认数字键获取一个基本数组:
$basic_array = array("value1", "value2", "value3")
我想将该数组与设置如下的关联数组合并:
$associative_array = array(array("filename" => "value4"), array("filename" => "value5"), array("filename" => "value6"))
,因此关联数组中的每个数字键都包含一个额外的数组集。
最好做的是:
$associative_array = array_merge(
[combine $basic_array into temp_array set up with same
structure of $associative_array, and add $basic_array
values into temp_array]
, $associative_array
);
这显然取决于数组操作函数的哪些组合(如果有的话(可以动态复制 $associative_array 结构,并用 $basic_array 的值填充每个子数组中的相应键,然后合并它们。
我这样做是因为我想用associative_array对basic_array中的所有内容进行重复数据消除。
我目前正在这样做:
$manual_additions_filenames = array("vtlcvsp.pdf", "vtp.pdf", "vtpsai.pdf", "2990-2.pdf", "2990-8.pdf", "vtxbrl.zip", "vtfrisp.pdf", "vtp.pdf", "vtpsai.pdf", "1939-2.pdf", "cashcollateral.pdf", "cashreserves.pdf");
$associative_array_filenames = array(); //dummy one-dimensional array to store values in filename key of associative array
foreach ($associative_array as $key => $field_array)
{
$associative_array_filenames[] = $field_array["filename"];
} //pull filename and put into one-dimensional array
$manual_additions = array_diff(
array_unique($manual_additions_filenames), $associative_array_filenames
); //compare, to get list of unique filenames to be tacked on
foreach ($manual_additions as $value)
{
$associative_array[]["filename"] = $value;
}
所有本机 php 数组函数都旨在消除所有这些 foreach 循环,至少我是这么认为的,所以我很想清理这些废话。
试试这个:
$basic_array = array("value1", "value2", "value3");
$basic_array = array_unique($basic_array);
$associative_array = array_map(
function($item) {
return ['file_name' => $item];
},
$basic_array);