首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编码组合其成员之一的关联数组?

如何编码组合其成员之一的关联数组?
EN

Stack Overflow用户
提问于 2016-01-27 13:42:35
回答 2查看 67关注 0票数 0

如何编码组合其成员之一的关联数组?

代码语言:javascript
复制
$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

代码语言:javascript
复制
[
// 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)弄糊涂了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-27 14:06:13

您可以在mysql查询中使用group_concat函数。如果你要通过mysql获取结果

票数 1
EN

Stack Overflow用户

发布于 2016-01-27 14:04:37

以下是一个想法:

代码

代码语言:javascript
复制
<?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"}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35039002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档