我有一个多维数组,我想将类别的类别信息分组到一个数组中,而将其他数组数据分组到各个数组中。
我试图通过一些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。
答案 0 :(得分:0)
如果我错了,请纠正我。您要创建一个按类别分组的多维数组。 如果是这种情况,请尝试以下代码:
$newArray = [];
foreach ($arrs as $key => $value) {
$newArray[$value['category_name']][] = $value;
}
答案 1 :(得分:0)
以下是有关我如何解决问题的代码。
$ 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函数获取要创建最终数组以执行组数组的值。