您好,我正在尝试创建类似的数据集
预期输出:-
Array
(
[0] => Array
(
[sku] => sku
[variant_option_one_name] => Color
[variant_option_one_value] => Cyan
),
[1] => Array
(
[sku] => sku
[variant_option_one_name] => Color
[variant_option_one_value] => Red
)
)
但我不确定代码中缺少什么。
这是代码
$array = array(
0 => array(
'id_product_attribute' => '17615',
'id_product' => '2295',
'reference' => '',
'available_date' => '0000-00-00',
'vend_id' => null,
'id_shop' => '1',
'id_attribute_group' => '1',
'is_color_group' => '1',
'group_name' => 'Color',
'attribute_name' => 'Cyan',
'id_attribute' => '1',
),
1 => array(
'id_product_attribute' => '17616',
'id_product' => '2295',
'reference' => '',
'available_date' => '0000-00-00',
'vend_id' => null,
'id_shop' => '1',
'id_attribute_group' => '1',
'is_color_group' => '1',
'group_name' => 'Color',
'attribute_name' => 'Red',
'id_attribute' => '21',
),
);
$ids = array();
foreach ($array as $combinations) {
$ids['sku'] = 'sku';
$ids['variant_option_one_name'] = $combinations['group_name'];
$ids['variant_option_one_value'] = $combinations['attribute_name'];
}
print_r($ids);//
我在这里得到
Array
(
[sku] => sku
[variant_option_one_name] => Color
[variant_option_one_value] => Red
)
我得到的上述输出。好像数据被覆盖了 是否需要更正才能获取这两个数据? 我没有得到数组中的两种颜色。它 谢谢
最佳答案
你说得完全正确,这些值每次都会被覆盖。
你需要做的是,每次循环时,你应该创建一个包含你的值的新数组,然后将该数组分配给主数组内的新索引(这样你就得到一个数组的数组,就像预期的输出一样)您已展示):
foreach ($array as $combinations) {
$arr = array();
$arr['sku'] = 'sku';
$arr['variant_option_one_name'] = $combinations['group_name'];
$arr['variant_option_one_value'] = $combinations['attribute_name'];
$ids[] = $arr;
}
现场演示:http://sandbox.onlinephpfunctions.com/code/3a0cf7f8cbb994ef4192c1e23493bef397785937
关于php - 在php中创建数据集(循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65528799/