如何编码组合其成员之一的关联数组?
$my_array = Array(
// customer 1
[0] => Array
(
[customer_id] => 1
[cutomer_item] => 7
)
[1] => Array
(
[customer_id] => 1
[cutomer_item] => 9
)
// customer 2
[2] => Array
(
[customer_id] => 2
[cutomer_item] => 3
)
[3] => Array
(
[customer_id] => 2
[cutomer_item] => 5
)
);我想去集团(csv) customers_items:
[
// customer 1
{
"customer_id" : "1" // customer id preserved
"cutomer_items" : "7,9" // customer items imploded with a comma
}
,
// customer 2
{
"customer_id" : "2"
"cutomer_items" : "3,5"
}
]我被这么多数组函数(http://php.net/manual/en/ref.array.php)弄糊涂了。
发布于 2016-01-27 14:06:13
您可以在mysql查询中使用group_concat函数。如果你要通过mysql获取结果
发布于 2016-01-27 14:04:37
以下是一个想法:
代码
<?php
$my_array = array(
array('customer_id' => 1, 'cutomer_item' => 7),
array('customer_id' => 1, 'cutomer_item' => 9),
array('customer_id' => 2, 'cutomer_item' => 3),
array('customer_id' => 2, 'cutomer_item' => 7),
);
sort($my_array);
$customer = '';
$gp_array = array();
$carr = false;
foreach($my_array as $item) {
if ($customer!=$item['customer_id']) {
if ($carr!==false) {
$carr['customer_items'] = implode(',',$carr['customer_items']);
$gp_array[] = $carr;
}
$carr = array('customer_id'=>$item['customer_id'], 'customer_items' => array());
}
$customer = $item['customer_id'];
$carr['customer_items'][] = $item['cutomer_item'];
}
if ($carr!==false) {
$carr['customer_items'] = implode(',',$carr['customer_items']);
$gp_array[] = $carr;
}
$json = json_encode($gp_array);
echo $json
?>输出
{"customer_id":1,"customer_items":"7,9"},{"customer_id":2,"customer_items":"3,7"}
https://stackoverflow.com/questions/35039002
复制相似问题