如何基于PHP Codeigniter中的一个字段值将数组拆分为组 [英] How to split array into groups based on one field value in PHP Codeigniter

查看:87
本文介绍了如何基于PHP Codeigniter中的一个字段值将数组拆分为组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个这样的数组:

Array
(
[0] => stdClass Object
    (
        [vendor_id] => 11 
        [name] => Telkom Pin Airtime R100.00 
        [provider] => Telkom Mobile 
        [service] => Pre-Paid Airtime Recharge
    )

[1] => stdClass Object
    (
        [vendor_id] => 12 
        [name] => Telkom Pin Airtime R100.00 
        [provider] => Telkom Mobile 
        [service] => Pre-Paid Airtime Recharge
    )

[2] => stdClass Object
    (
        [vendor_id] => 13
        [name] => Telkom Pin Airtime R100.00 
        [provider] => Telkom Mobile 
        [service] => Bill Payments
    )
)
....

有8种服务类型,我想根据 service 字段的值对数据进行分组。像这样:

8 type of services are there and I want to group my data based on the service field's value. Like this:

Service: Pre-Paid Airtime Recharge
[0] => stdClass Object
    (
        [vendor_id] => 13
        [name] => Telkom Pin Airtime R100.00 
        [provider] => Telkom Mobile 
        [service] => Pre-Paid Airtime Recharge
    )
[1] => stdClass Object
    (
        [vendor_id] => 14
        [name] => Telkom Pin Airtime R100.00 
        [provider] => Telkom Mobile 
        [service] => Pre-Paid Airtime Recharge
    )


Service: Bill Payments
[0] => stdClass Object
    (
        [vendor_id] => 15
        [name] => Telkom Pin Airtime R100.00 
        [provider] => Telkom Mobile 
        [service] => Bill Payments
    )
[1] => stdClass Object
    (
        [vendor_id] => 16
        [name] => Telkom Pin Airtime R100.00 
        [provider] => Telkom Mobile 
        [service] => Bill Payments
    )

有可能吗?请指南

推荐答案

假定原始数组的名称为$ origin_data,并在操作后将按服务名称排序的数据放入$ sorted_data

assume the original array's name is $origin_data and after manipulation we put data that sorted by service name into $sorted_data

$sorted_data = array(); 
//its key value pair is like [service_name] => array( 0 => array(...),...)
foreach($origin_data as $item) {
    if(isset($sorted_data[$item[service]])) {
        $sorted_data[$item[service]][] = $item;
    }
}

现在 $的每个元素sorted_data 是一项服务的一组元素

Now each element of $sorted_data is a group of elements for one service

这篇关于如何基于PHP Codeigniter中的一个字段值将数组拆分为组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆