Abfrage:Wie kann man benutzerdefinierte Array in PHP machen?
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
Wenn ich oben typische Abfrage ausführen gefunden dann ein Array: Ich
[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
)
von oben Array, wenn service_year
, country
, mobile_operator
, service
gleich sind aber Monat unterschiedlich sind dann möchte ein neues Array wie unten erstellen
$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
}
}
Wie kann ich dies tun, wenn ich Laravel 5 Framework verwendet habe? Ist es möglich, meine Abfrage zu ändern, um einen solchen Array-Typ zu erhalten?
Ich schätze alle Hinweise und Antworten. Danke voraus.
Die Frage über das Schreiben eine SQL-Abfrage zu sein scheint. Daher würde ich es bevorzugen, wenn Sie diese Frage zuerst in der SQL-Community stellen. Soweit ich weiß, müssen Sie die GROUP BY-Klausel in der SQL-Abfrage verwenden, um die Monate, Jahre, den Service oder was immer Sie möchten zu gruppieren. Nur basierend auf dem Abfrageergebnis müssen Sie entscheiden, ob Sie die Abfrage in PHP implementieren möchten. – Perumal
Vielen Dank für Ihren Rat, hier habe ich Anfrage hinzufügen, um meine Frage zu bearbeiten. –
Sie müssen das Stdclass-Objekt aus dem zurückgegebenen Array entfernen, denke ich? –