0

So I'm working with an API for vehicles, and I am running into a wall and hoping to get some input from those with more experience with this... I'll start by showing an example of the data I get back from an API call.

Array
(
    [make] => Array
    (
        [id] => 200003644
        [name] => Chrysler
        [niceName] => chrysler
    )

[model] => Array
    (
        [id] => Chrysler_200
        [name] => 200
        [niceName] => 200
    )

[engine] => Array
    (
        [equipmentType] => ENGINE
        [availability] => USED
        [cylinder] => 6
        [size] => 3.6
        [configuration] => V
        [fuelType] => flex-fuel (unleaded/E85)
        [horsepower] => 295
        [type] => flex-fuel (FFV)
        [code] => ERB
        [rpm] => Array
            (
                [horsepower] => 6350
                [torque] => 4250
            )

        [valve] => Array
            (
                [gear] => double overhead camshaft
            )

    )

[transmission] => Array
    (
        [equipmentType] => TRANSMISSION
        [availability] => USED
        [transmissionType] => AUTOMATIC
    )

[drivenWheels] => front wheel drive
[numOfDoors] => 4
[options] => Array
    (
        [0] => Array
            (
                [category] => Safety
                [options] => Array
                    (
                        [0] => Array
                            (
                                [id] => 200741607
                                [name] => SafetyTec
                                [description] => Adaptive Cruise Control with Stop & Go; Advanced Brake Assist; Automatic high beam control; Blind Spot and Cross Path Detection; Full Speed Forward Collision Warning Plus; Lane Departure Warning Plus; Parallel and Perpendicular Park Assist with Stop; Rain sensitive windshield wipers
                                [equipmentType] => OPTION
                                [availability] => All C/All C Platinum
                            )

                    )

            )

        [1] => Array
            (
                [category] => Package
                [options] => Array
                    (
                        [0] => Array
                            (
                                [id] => 200741480
                                [name] => Quick Order Package 26N (Fleet)
                                [description] => Vehicle with standard equipment
                                [equipmentType] => OPTION
                                [availability] => All C
                            )

                        [1] => Array
                            (
                                [id] => 200741610
                                [name] => Premium Group
                                [description] => 115V auxiliary power outlet; Exterior mirrors with memory; Heated 2 tone leather steering wheel; Luxury door trim panel; Premium leather trimmed ventilated front seats with leather seat cushion; Radio/driver seat/Climate control with memory; Real wood/bronze chrome interior accents
                                [equipmentType] => OPTION
                                [availability] => All C/All C Platinum
                            )

                        [2] => Array
                            (
                                [id] => 200741715
                                [name] => Premium Lighting Group
                                [description] => HID headlamps with LED daytime running lights; LED fog lamps
                                [equipmentType] => OPTION
                                [availability] => All S/All C
                            )

                        [3] => Array
                            (
                                [id] => 200741805
                                [name] => Navigation And Sound Group I
                                [description] => 506 watt amplifier; SiriusXM traffic with 5-year of included service; Travel Link Service with 5-year of included service; 9 amplified speakers with subwoofer; GPS navigation; HD radio; Uconnect 8.4AN AM/FM/SiriusXM/Hard disc drive/Bluetooth/Navigation
                                [equipmentType] => OPTION
                                [availability] => All C
                            )

                    )

            )
)

So if I have this data stored in a variable called $data for example, I can do something like this and it works:

foreach ($data['options'] as $options) {
    echo $options['category'];
}

That will return me "Safety", and "Package".

However, if I wanted to get the vehicle's make and I do something like this:

foreach ($data['make'] as $make) {
     echo $make['name'];
}

It just returns me the value : Cc (Upper case C from the make name, and lowercase c from the make niceName). Why is it doing this? What am I doing wrong?

Thank you!

0

2 Answers 2

2

There's only one 'make', so I think you just want this (no loop):

echo $data['make']['name'];
Sign up to request clarification or add additional context in comments.

1 Comment

:-\ You're right, I over thought this hard. Thank you!
1

Every element of $data['make'] is a string (maybe integer), but not an array as every element of $data['options']. So, you can't use [] notation in case of $data['make'].

Just:

foreach ($data['make'] as $make) {
     echo $make;
}

will do what you need.

1 Comment

Already tried that as well. I get this as a result: 200003644Chryslerchrysler So it is combining the id, the name and the niceName - which I do not need all of that. To me, what you just said is exactly what I expect to write, to make it work. And it didn't.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.