我有一个包含产品ID,产品名称和公司ID的2D数组,现在我想使一组公司具有产品信息,并且可以将产品详细信息邮寄给公司,我在数组中有类似
Array
(
[0] => Array
(
[id] => 5363
[proname] => pro1
[company_id] => 101
)
[1] => Array
(
[id] => 5364
[proname] => pro2
[company_id] => 105
)
[2] => Array
(
[id] => 5366
[proname] => pro3
[company_id] => 102
)
[3] => Array
(
[id] => 5367
[proname] => pro4
[company_id] => 101
)
[4] => Array
(
[id] => 5368
[proname] => pro5
[company_id] => 105
)
[5] => Array
(
[id] => 5369
[proname] => pro6
[company_id] => 105
)
[6] => Array
(
[id] => 3847
[proname] => pro7
[company_id] => 102
)
[7] => Array
(
[id] => 3849
[proname] => pro8
[company_id] => 105
)
[8] => Array
(
[id] => 5371
[proname] => pro9
[company_id] => 101
)
[9] => Array
(
[id] => 5383
[proname] => pro10
[company_id] => 102
)
[10] => Array
(
[id] => 5385
[proname] => pro11
[company_id] => 105
)
)
我想在company_id的基础上制作数组块,因此最终数组应该是 3-D 数组,输出应该是这样的
array(
[0]=>Array(
[0] => Array
(
[id] => 5363
[proname] => pro1
[company_id] => 101
)
[1] => Array
(
[id] => 5367
[proname] => pro4
[company_id] => 101
)
[2] => Array
(
[id] => 5371
[proname] => pro9
[company_id] => 101
)
)
[1]=Array
(
[0] => Array
(
[id] => 5364
[proname] => pro2
[company_id] => 105
)
[1] => Array
(
[id] => 5368
[proname] => pro5
[company_id] => 105
)
[2] => Array
(
[id] => 5369
[proname] => pro6
[company_id] => 105
)
[3] => Array
(
[id] => 3849
[proname] => pro8
[company_id] => 105
)
[4] => Array
(
[id] => 5385
[proname] => pro11
[company_id] => 105
)
)
[2]=Array(
[0] => Array
(
[id] => 5366
[proname] => pro3
[company_id] => 102
)
[1] => Array
(
[id] => 3847
[proname] => pro7
[company_id] => 102
)
[2] => Array
(
[id] => 5383
[proname] => pro10
[company_id] => 102
)
)
)
宗旨是把集团当成公司。
试试这个:
最简单的方法:
$newarray = array();
foreach($array as $values) {
$newarray[$values['company_id']][] = $values;
}
$newarray = array_values($newarray);
另一种方式:
<?php
$newarray = array();
foreach($array as $key=>$val){// here $array is your given array.
if(isset($newarray[$val['company_id']])){
array_push($newarray[$val['company_id']],$val);
}else{
$newarray[$val['company_id']][0]=$val;
}
}
$newarray = array_values($newarray);
echo "<pre>";
print_r($newarray);
echo "</pre>";
?>
遍历数组。
在这里,您可以获得由第三级组成的二维数组(我们预期的数组(。
检查密钥是否company_id
并附加到我们在循环之前创建的新数组。
$newArr = array();
foreach ($arr as $array) {
foreach ($array as $k=>$v) {
if ($k == 'company_id') {
$newArr[$k][] = $array;
}
}
}
print_r($newArr); // Your new array()
$groupBycompany = [];
if ($companies) {
foreach ($companies as $keys => $values) {
if (isset($values['company_id'])){
$groupByCompany[$values['company_id']][] = $values;
}
}
}