You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何多次将多维数组的值添加到同一个对象中?

解决多维数组值批量添加到同一对象的问题

原代码存在的问题

  1. 若setProductSku($data2)是覆盖式设置而非追加逻辑,最终对象里只会保留最后一个$data2的值,无法实现多次添加的需求。
  2. 将setProductSku的返回值赋值给原数组变量$data,会覆盖初始的多维数组,属于不必要的错误操作。

针对性解决方案

方案一:用类的追加方法实现(推荐)

如果PartnerRestrictionTransfer类提供了专门的追加方法(比如addProductSku),直接循环调用追加即可:

$test = new PartnerRestrictionTransfer();
foreach($data as $data2)
{
    $test->addProductSku($data2); // 每次调用追加一个SKU,而非覆盖原有值
}
print_r($test);
die;

方案二:先收集所有SKU再批量设置

如果类支持通过数组批量设置SKU(即setProductSku可接收数组参数),先把多维数组的所有值收集到一个数组中,再一次性传入方法:

$test = new PartnerRestrictionTransfer();
$skuCollection = [];
foreach($data as $data2)
{
    $skuCollection[] = $data2; // 收集所有需要添加的SKU
}
$test->setProductSku($skuCollection); // 一次性批量设置
print_r($test);
die;

方案三:通过获取-修改-重设实现追加

如果类只有setProductSku单值设置方法,但提供了getProductSku获取当前值的方法,可以通过以下方式实现追加:

$test = new PartnerRestrictionTransfer();
foreach($data as $data2)
{
    $currentSkus = $test->getProductSku();
    // 处理初始值非数组的情况
    $currentSkus = is_array($currentSkus) ? $currentSkus : ($currentSkus ? [$currentSkus] : []);
    $currentSkus[] = $data2; // 追加新的SKU
    $test->setProductSku($currentSkus); // 重新设置回对象
}
print_r($test);
die;

内容的提问来源于stack exchange,提问作者Anurag Baliyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:25:21