lundi 27 juin 2016

How can make custom array in php?

Query:

SELECT t1.id, t1.year as service_year, t5.month as service_month, t6.id as country_id, t6.country, t7.id as mobile_operator_id, t7.mobile_operator, t1.service_id, t1.gross_revenue_actual, t1.content_partner_share , t2.service , t4.collected_at, t4.id as invoice_id FROM PaymentCollections t1 JOIN Services t2 ON t1.service_id = t2.id JOIN PaymentCollectionInvoiceItems t3 ON t3.payment_collection_id = t1.id JOIN PaymentCollectionInvoices t4 ON t4.id = t3.invoice_id JOIN Months t5 ON t5.id = t1.month JOIN Countries t6 ON t6.id = t2.country_id JOIN MobileOperators t7 ON t7.id = t2.mobile_operator_id WHERE t1.payment_collection_status_id = 18 GROUP BY t1.year, t1.month ORDER BY t1.year DESC, t1.month ASC

When I run above typical query then found an array:

[0] => stdClass Object
    (
        [id] => 5132
        [service_year] => 2016
        [service_month] => April
        [country_id] => 116
        [country] => Kenya
        [mobile_operator_id] => 3
        [mobile_operator] => Airtel
        [service_id] => 16
        [gross_revenue_actual] => 11500.000000
        [content_partner_share] => 1000.000000
        [service] => Christianity Portal
        [collected_at] => 2016-06-24 09:59:19
        [invoice_id] => 105
    )

[1] => stdClass Object
    (
        [id] => 4982
        [service_year] => 2016
        [service_month] => May
        [country_id] => 116
        [country] => Kenya
        [mobile_operator_id] => 3
        [mobile_operator] => Airtel
        [service_id] => 16
        [gross_revenue_actual] => 11500.000000
        [content_partner_share] => 1000.000000
        [service] => Christianity Portal
        [collected_at] => 2016-06-24 10:02:21
        [invoice_id] => 106
    )

[2] => stdClass Object
    (
        [id] => 4732
        [service_year] => 2016
        [service_month] => June
        [country_id] => 116
        [country] => Kenya
        [mobile_operator_id] => 3
        [mobile_operator] => Airtel
        [service_id] => 16
        [gross_revenue_actual] => 11000.000000
        [content_partner_share] => 1000.000000
        [service] => Christianity Portal
        [collected_at] => 2016-06-24 13:13:42
        [invoice_id] => 114
    )

[3] => stdClass Object
    (
        [id] => 5522
        [service_year] => 2015
        [service_month] => December
        [country_id] => 51
        [country] => Congo(Republic of)
        [mobile_operator_id] => 31
        [mobile_operator] => MTN
        [service_id] => 56
        [gross_revenue_actual] => 11500.000000
        [content_partner_share] => 1000.000000
        [service] => Music On Demand
        [collected_at] => 2016-06-24 11:26:09
        [invoice_id] => 101
    )

By using above array, If service_year, country, mobile_operator, service are same but month are different then I want to create new array like below

$finalarray = {
0 = {
[id] => 4732,
[service_year] => 2016,
[service] => Christianity Portal,
[country] => Kenya,
[mobile_operator] => Airtel,
array{
array[April] {
[gross_revenue_actual] => 11500.000000
[content_partner_share] => 1000.000000
[collected_at] => 2016-06-24 10:02:21
},
array[May] {
    [gross_revenue_actual] => 11000.000000
    [content_partner_share] => 1000.000000
    [collected_at] => 2016-06-24 13:13:42
    },
    array[June] {
        [gross_revenue_actual] => 11000.000000
        [content_partner_share] => 1000.000000
        [collected_at] => 2016-06-24 13:13:42
        },
    }
}
1 = {
    [id] => 5522
    [service_year] => 2015
    [service_month] => December
    [country_id] => 51
    [country] => Congo(Republic of)
    [mobile_operator_id] => 31
    [mobile_operator] => MTN
    [service_id] => 56
    [gross_revenue_actual] => 11500.000000
    [content_partner_share] => 1000.000000
    [service] => Music On Demand
    [collected_at] => 2016-06-24 11:26:09
    [invoice_id] => 101
}

}

How can I do this when I have used Laravel 5 framework? Is it possible to modify my query to get such type of array?

I appreciate all hints and responses. Thanks ahead.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire