gpt4 book ai didi

php - 组合不同数量的动态命名数组

转载 作者:搜寻专家 更新时间:2023-10-31 21:55:35 25 4
gpt4 key购买 nike

我看到了以下内容:array_merge() How can I add a 'range' of an array name答案对我不起作用。

我有一个循环遍历的数组,以便对某些货币字符串进行切片并将其转换为 float 。然后我必须将它们 array_merge 重新组合在一起以便使用数组并动态命名它们,这样我就不会覆盖以前的 array_merge。这样做之后,我需要将所有动态命名的数组组合成一个数组。

最初我有以下代码,当我在 $order['product'] 数组中只有 3 个嵌套数组时,它工作得很好。但是,这个数字会有所不同,代码也需要这样做。

$nr = 1;
foreach ($order['product'] as $product) {
$product_total = array_slice($product, 1);
array_walk($product_total, "convertCurrencyStringtoNumber");
${"final_product" . $nr} = array_merge($product, $product_total);
$nr++;
};
$arrays = array($final_product1, $final_product2, $final_product3);
var_dump($arrays);

这会产生以下数组:

array(3) { 
[0]=> array(2) {
["source_code"]=> string(10) "408000-025"
["total"]=> float(18) }
[1]=> array(2) {
["source_code"]=> string(10) "408000-025"
["total"]=> float(17) }
[2]=> array(2) {
["source_code"]=> string(10) "408000-025"
["total"]=> float(2.75) } }

如何在行中实现不同数量的动态命名数组:

$arrays = array($final_product1, $final_product2, $final_product3); 

我尝试了以下操作,但数组嵌套不正确。请随时修复此代码或提出更好的解决方案。

$nr = 1;
$i = 1;
foreach ($order['product'] as $product) {
$product_total = array_slice($product, 1);
array_walk($product_total, "convertCurrencyStringtoNumber");
${"final_product" . $nr} = array_merge($product, $product_total);
if ($nr > 0) {
$arrays = $final_product1;
for ($i = 2; $i <= $nr; $i++) {
$arrays = array_merge($arrays, ${"final_product" . $nr});
}
} else {
echo "There are no products in this order";
}
$nr++;
};
var_dump($arrays);

这会导致错误嵌套的数组:

array(2) { 
[0]=> array(2) {
[0]=> array(2) {
["source_code"]=> string(10) "408000-025"
["total"]=> float(18) }
[1]=> array(2) {
["source_code"]=> string(10) "408000-025"
["total"]=> float(17) } }
[1]=> array(2) {
["source_code"]=> string(10) "408000-025"
["total"]=> float(2.75) } }

最佳答案

只需用数组替换您的动态单命名变量:

$final_product = array();
foreach ($order['product'] as $product) {
$product_total = array_slice($product, 1);
array_walk($product_total, "convertCurrencyStringtoNumber");
$final_product[] = array_merge($product, $product_total);
};
var_dump($final_product);

关于php - 组合不同数量的动态命名数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34296243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com