php - 在php中创建数据集(循环)

标签 php arrays

您好,我正在尝试创建类似的数据集

预期输出:-

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/

相关文章:

php - 根据表列之一中的特定输入获取多个 MySQL 行

java - 缺少一些代码;具有 Add() 和 Remove() 方法的 ArrayList 模式

javascript - 如何将像字符串这样的数组转换为 node.js 中的数组?

php - Magento Observer,函数错误

javascript - 在 Javascript 数组中查找字符串键

arrays - 矩阵的行与另一个矩阵的列相乘的快速方法

python - 使用python对地理定位的、不规则间隔的经度/纬度网格执行双线性插值的最快方法?

php - session_start() 永远保持文件加载

javascript - Yii框架2.0使用POST方法的AJAX请求

php - 循环中的mysql查询使用左连接与同名列