[英]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.