繁体   English   中英

需要有关多维数组格式的帮助

[英]Need help regarding multi dimensional array formatting

我有一个多维数组,我想在其中将类别的类别信息分组到一个数组,将其他数组数据分组到各个数组。

我试图通过一些SQL查询从数据库中获取数据,然后将整个数据合并到一个数组。

$out = array();

foreach ($arr as $key => $value){
//$out[] = (object)array_merge((array)$ar[$key], (array)$value);
$out[] = array_merge((array)$ar[$key], (array)$value);
}


$tmp = array();

foreach($out as $arg)
{
foreach($arg as $arg2 )
{
   $tmp[$arg2['product_id']][] = @$arg2['category_id'];
}


}


echo "<pre>";
print_r($tmp);

我想将与特定产品相关的所有类别分组到类别ID,类别名称,类别描述等信号数组和其他相应数组的产品数据。

以下是包含类别信息和产品数据的结果数组。

 Array
 (
 [0] => Array
    (
        [product_id] => 84
        [category_id] => 1060
        [category_name] => ACMITT
        [category_descr] => 

        010010                                                                                                        

        Syn: Aegerin                                                                                              

       Skaper mot og styrke når retrett er umulig. Gir klart syn 
       og overblikk.          

       Et mineral som inneholder natrium og jern. Hardhet på 6,o 
       og egenvekt på 3,5

    )

[1] => Array
    (
        [product_id] => 84
        [category_id] => 1252
        [category_name] => A
        [category_descr] => 
    )

[2] => Array
    (
        [product_attr_id] => 1827
        [product_id] => 84
        [attribute_id] => 13
        [product_attr_value] => 

    Skaper mot og styrke når retrett er umulig. Gir klart syn og 
    overblikk. Syn: Aegerin

    )

[3] => Array
    (
        [product_attr_id] => 1819
        [product_id] => 84
        [attribute_id] => 4
        [product_attr_value] => 010010
    )

[4] => Array
    (
        [product_attr_id] => 1823
        [product_id] => 84
        [attribute_id] => 9
        [product_attr_value] => 
        http://www.steinhaugenmoss.no/avactis- 
        images/acmittkrysttynne.jpg
    )

[5] => Array
    (
        [product_attr_id] => 1816
        [product_id] => 84
        [attribute_id] => 1
        [product_attr_value] => 50.00
    )

   )

     Array
     (
        [0] => Array
     (
        [product_id] => 5583
        [category_id] => 1057
        [category_name] => Gaveartikkler
        [category_descr] => 

        Mange av våre artikkler egner seg som gaver til jubilerer 
        og annet. Her har vi plasert steinklokker, telysholdere og 
        annet som egner seg som gaver. 

    )

[1] => Array
    (
        [product_id] => 5583
        [category_id] => 1068
        [category_name] => AGAT
        [category_descr] => 

          010030                                                                                                  

         Syn: Innvielsesstein                                                                                    

         Gir deg selvrespekt mot og handlekraft. Hjelper for 
         hjertet.                    

        Er mineralet kvarts og består av silicium oksyd. Har en 
        hardhet på 7.0 og egenvekt på 2.7 Det har felt seg ut 
        kryptokrystallinsk og danner knoller av mikro kvarts 
        krystaller. Fargen kommer av metaliske forurensinger. De 
        fleste agater i handel er farget.

    )

[2] => Array
    (
        [product_attr_id] => 117306
        [product_id] => 5583
        [attribute_id] => 13
        [product_attr_value] => Gir deg selvrespekt mot og 
         handlekraft. Hjelper for hjertet. Syn: innvielsesstein
    )

[3] => Array
    (
        [product_attr_id] => 117302
        [product_id] => 5583
        [attribute_id] => 9
        [product_attr_value] => Boksttte700.jpg
    )

[4] => Array
    (
        [product_attr_id] => 117298
        [product_id] => 5583
        [attribute_id] => 4
        [product_attr_value] => 010030
    )

[5] => Array
    (
        [product_attr_id] => 117295
        [product_id] => 5583
        [attribute_id] => 1
        [product_attr_value] => 700.00
    )

我想格式化这个数组,以便我可以生成这个数据的CSV文件,以便导入到woocommerce。

如果我错了纠正我 。 您想要创建一个按类别分组的多维数组。 如果是这种情况尝试此代码:

$newArray = [];
foreach ($arrs as $key => $value) {

   $newArray[$value['category_name']][] = $value;
}

以下是我如何解决问题的代码。

$ final_arr = [];

foreach($ out as $ v){$ cat_name = array_column($ v,'category_name');

$p_info = array_column($v,'product_attr_value');

$attrb_id = array_column($v,'attribute_id');

$p_id = array_column($v,'product_id');

$p_name = array_column($v,'product_name');

$c = array_combine($attrb_id, $p_info);

$final_arr[] = array(
    'pid' =>  $p_id[0],
    'product_title' => $p_name[0],
    'product_name' => $p_name[0],
    'product_desc' => $c[13],
    'post_status'  => 'publish',
    'post_author'  => 1,
    'product_type' => 'simple',
    'price' => $c[1],
    'sku' => $c[4],
    'image' => $c[9]
);
}

我创建一个数组并使用array_column函数,我得到了我想创建一个最终数组来执行组数组的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM