Jump to content

Basic Array Question


Torrie

Recommended Posts

I'm so confused with multidimensional arrays. May I please ask a couple questions?

 
1.) In the json array below, How do I use PHP to echo, for example, the price offered by Susan?
 
I tried things like echo $result["data"][0]["Susan"] to work, but it won't work.
 
2.) Near the top of the array it shows the lowest price is $25.56. How do I get PHP to echo that?
 
Again, I tried echo $result[LowestPrice] but that doesn't work.
 
3.) The array below is really big. What code do I use to create a smaller array of just [Name] and [OfferingPrice] ?? 
 
If I can do that, then I can do the PHP thing where you go "foreach ($result as $var=>$value) { echo "$var...$value" } etc., and I can sort it etc.
 
Here's the array:
 
$result = json_decode($stuff,true);
print_r($result);
 
//this is what it is output
 
Array
(
    [data] => Array
        (
            [info] => Array
                (
                    [LowestPrice] => 25.56
                    [PlaceOfManufacture] => USA
                )
 
            [OfferingPrice] => Array
                (
                    [0] => Array
                        (
                            [OfferingPrice] => 20.00
                            [salesAssociate] => Array
                                (
                                    [badgeNumber] => 125
                                    [Name] => Fred
                                )
 
                        )
 
                    [1] => Array
                        (
                            [OfferingPrice] => 18.36
                            [salesAssociate] => Array
                                (
                                    [badgeNumber] => 932
                                    [Name] => Susan
                                )
 
                        )
 
                    [2] => Array
                        (
                            [OfferingPrice] => 2.34
                            [salesAssociate] => Array
                                (
                                    [badgeNumber] => 73
                                    [Name] => Grandpa
                                )
 
                        )
 
                    [3] => Array
                        (
                            [OfferingPrice] => 44.28
                            [salesAssociate] => Array
                                (
                                    [badgeNumber] => 202
                                    [Name] => Stewart
                                )
 
                           )
 
                )
 
        )
 
)
Link to comment
Share on other sites

If you have print_r() output of an array then you need to look at every "[...] =>" part between the top and the place you want. That means looking at the indentation, or at least navigating your way through the nested Array()s.

 

1. The price will be $result["data"]["OfferingPrice"][1]["OfferingPrice"]. The problem is the 1: if all you know is that the associate's name is Susan then you have to find a way to turn "the associate is Susan" into "the array key is 1". There are a few ways but the simplest is a foreach loop.

foreach ($result["data"]["OfferingPrice"] as $offeringPrice) {
	if ($offeringPrice["SalesAssociate"]["Name"] == "Susan") {
		echo "Susan offered $", $offeringPrice["OfferingPrice"];
	}
}
2. This one is easier.

Array <- $result is an array
(
    [data] => Array <- $result["data"] is an array
        (
            [Info] => Array <- $result["data"]["Info"] is an array
                (
                    [LowestPrice] => 25.56 <- $result["data"]["Info"]["LowestPrice"] is 25.56
3. Use a foreach loop like in #1 to make your own array.

$smaller = array(); // empty
foreach ($result["data"]["OfferingPrice"] as $offeringPrice) {
	$smaller[] = array(
		"Name" => // ???
		"OfferingPrice" => // ???
	);
}
Try to fill in the ???s yourself - look at #1 for a hint.
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.