Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

acoustic85's avatar

Query the json file

Dear all ,

I have a json file that I need to query and show following staff:

Count the total number of orders? Count the number of orders that were FREE? Count the number of orders that were placed in GBP?

I have loaded the file in my laravel app but I have no idea how to query the file.

this is the first row of the JSON file

    {
        "created_at": "2016-01-17T17:02:25.660Z",
        "description": "Consectetur est deserunt laborum excepteur amet consectetur aute anim magna excepteur quis veniam eu quis. Anim ullamco est commodo duis aliqua commodo commodo commodo. Ullamco do officia veniam veniam exercitation veniam enim adipisicing. Exercitation fugiat occaecat mollit sit magna duis est cillum qui id pariatur incididunt adipisicing velit. Adipisicing pariatur non commodo dolor do sunt commodo. Duis magna irure excepteur eu exercitation deserunt adipisicing ut ipsum consectetur fugiat labore eu. Culpa non veniam cillum et reprehenderit ad reprehenderit veniam qui.",
        "title": "fugiat magna Lorem aliquip qui",
        "customer":
        {
            "billing_address":
            {
                "postcode": "MO73 2ID",
                "county": "Westmorland",
                "city": "Oley",
                "street": "124 Veranda Place"
            },
            "shipping_address":
            {
                "postcode": "MO73 2ID",
                "county": "Westmorland",
                "city": "Oley",
                "street": "124 Veranda Place"
            },
            "phone": "+447482939767",
            "email": "[email protected]",
            "name":
            {
                "last": "Rios",
                "first": "Ingrid"
            }
        },
        "currency": "USD",
        "price": "0.33",
        "url": "https://example.com/products/5889b0a6797714883c501c23",
        "index": 13,
        "uuid": "30906bb3-ff12-4517-a9ea-71bb2ed79c0e",
        "id": "5889b0a6797714883c501c23"
    },


any idea on how to deal with this ?

0 likes
11 replies
devingray_'s avatar

Something like this?

// Get items as array
$items = json_decode(file_get_contents(storage_path() . "/file.json"), true);

//Filter collection
collect($items)->filter(function ($item) { return $item['price'] <= 0;})
1 like
Sinnbeck's avatar
Sinnbeck
Best Answer
Level 102

@doncho85 Pretty sure that was just an example, so you can do stuff yourself. And you never mentioned anything about sum?

Anyways. Here is an example of each

$all = collect($items);
$allCount = $all->count();
$allSum = $all->sum('price');

$free = $all->filter(function ($item) { 
    return $item['price'] == 0;
});
$freeCount = $free->count();
$freeSum = $free->sum('price');

$gbp = $all->filter(function ($item) { 
    return $item['currency'] == 'GBP';
});
$gbpCount = $free->count();
$gbpSum = $free->sum('price');
1 like
acoustic85's avatar

@vincent15000

yes i do looks something like this


[
    {
        "created_at": "2016-01-17T17:02:25.660Z",
        "description": "Consectetur est deserunt laborum excepteur amet consectetur aute anim magna excepteur quis veniam eu quis. Anim ullamco est commodo duis aliqua commodo commodo commodo. Ullamco do officia veniam veniam exercitation veniam enim adipisicing. Exercitation fugiat occaecat mollit sit magna duis est cillum qui id pariatur incididunt adipisicing velit. Adipisicing pariatur non commodo dolor do sunt commodo. Duis magna irure excepteur eu exercitation deserunt adipisicing ut ipsum consectetur fugiat labore eu. Culpa non veniam cillum et reprehenderit ad reprehenderit veniam qui.",
        "title": "fugiat magna Lorem aliquip qui",
        "customer":
        {
            "billing_address":
            {
                "postcode": "MO73 2ID",
                "county": "Westmorland",
                "city": "Oley",
                "street": "124 Veranda Place"
            },
            "shipping_address":
            {
                "postcode": "MO73 2ID",
                "county": "Westmorland",
                "city": "Oley",
                "street": "124 Veranda Place"
            },
            "phone": "+447482939767",
            "email": "[email protected]",
            "name":
            {
                "last": "Rios",
                "first": "Ingrid"
            }
        },
        "currency": "USD",
        "price": "0.33",
        "url": "https://example.com/products/5889b0a6797714883c501c23",
        "index": 13,
        "uuid": "30906bb3-ff12-4517-a9ea-71bb2ed79c0e",
        "id": "5889b0a6797714883c501c23"
    },
    {
        "created_at": "2016-11-22T13:06:15.868Z",
        "description": "Sit nisi velit reprehenderit pariatur minim sit aliqua elit. Ea duis fugiat anim exercitation et labore sit laboris proident nulla voluptate veniam. Enim nostrud dolor anim quis reprehenderit pariatur ad officia veniam esse. Aute aliquip dolor reprehenderit labore laborum ea laboris irure velit amet. Mollit veniam adipisicing excepteur ullamco nulla est magna enim aliquip occaecat do culpa. Culpa nostrud sint fugiat excepteur dolor enim. In consequat irure occaecat ipsum est officia.",
        "title": "duis tempor consectetur aute nisi",
        "customer":
        {
            "billing_address":
            {
                "postcode": "SD97 6AZ",
                "county": "Staffordshire",
                "city": "Hardyville",
                "street": "98 Harman Street"
            },
            "shipping_address":
            {
                "postcode": "SD97 6AZ",
                "county": "Staffordshire",
                "city": "Hardyville",
                "street": "98 Harman Street"
            },
            "phone": "+447748253848",
            "email": "[email protected]",
            "name":
            {
                "last": "Velazquez",
                "first": "Elaine"
            }
        },
        "currency": "GBP",
        "price": "2.96",
        "url": "https://example.com/products/5889b0a6664152cb6bccad04",
        "index": 14,
        "uuid": "08274ee9-72e0-4a3f-a9dd-3507e87c7430",
        "id": "5889b0a6664152cb6bccad04"
    },
    {
        "created_at": "2016-10-08T10:17:12.831Z",
        "description": "Do minim minim adipisicing sunt. Ullamco mollit sint id amet aute consequat nostrud anim sunt excepteur duis ipsum aliquip. Aliquip occaecat irure sunt eiusmod. Occaecat Lorem culpa enim id anim aliquip nulla magna deserunt irure.",
        "title": "exercitation minim anim id qui",
        "customer":
        {
            "billing_address":
            {
                "postcode": "OK49 4GU",
                "county": "Sutherland",
                "city": "Albany",
                "street": "139 Gunnison Court"
            },
            "shipping_address":
            {
                "postcode": "OK49 4GU",
                "county": "Sutherland",
                "city": "Albany",
                "street": "139 Gunnison Court"
            },
            "phone": "+447748895910",
            "email": "[email protected]",
            "name":
            {
                "last": "Cherry",
                "first": "Donovan"
            }
        },
        "currency": "GBP",
        "price": "6.96",
        "url": "https://example.com/products/5889b0a66887433ae171fa7a",
        "index": 15,
        "uuid": "3c3851a6-c0c2-4ea3-bfe6-ba71ba17ea00",
        "id": "5889b0a66887433ae171fa7a"
    },



1 like

Please or to participate in this conversation.