简体   繁体   中英

Find Array With 'SELECTED' Value Inside Multidimensional Array

I've got a very large JSON file that I've converted into an array. The code you see below is the result of

var_dump($array['talents'])

(for those wondering, yes, this is me attempting to use Blizzard Entertainment's API)

Maybe I just missed that day at PHP school, but I just can't seem to remember or figure out how to get the values inside these deeper arrays. And perhaps more importantly, pay attention to the two 'spec' fields - ONE of them has a value of 'SELECTED: BOOLEAN TRUE', and the other does not. Basically, I need the NAME field from the array that has that SELECTED value.

To be honest, much as I love working in PHP, this multi-level thinking is a tad beyond me at the moment, I need some more experience. In the meantime, could anyone give me some tips, pointers, or just straight-up answers as to how I can get the value I need?

Thanks a bunch for your time!

array (size=2)
  0 => 
    array (size=6)
      'talents' => 
        array (size=6)
          0 => 
            array (size=3)
              ...
          1 => 
            array (size=3)
              ...
          2 => 
            array (size=3)
              ...
          3 => 
            array (size=3)
              ...
          4 => 
            array (size=3)
              ...
          5 => 
            array (size=3)
              ...
      'glyphs' => 
        array (size=2)
          'major' => 
            array (size=0)
              ...
          'minor' => 
            array (size=1)
              ...
      'spec' => 
        array (size=6)
          'name' => string 'Frost' (length=5)
          'role' => string 'DPS' (length=3)
          'backgroundImage' => string 'bg-mage-frost' (length=13)
          'icon' => string 'spell_frost_frostbolt02' (length=23)
          'description' => string 'Freezes enemies in their tracks and shatters them with Frost magic.' (length=67)
          'order' => int 2
      'calcTalent' => string '120021.' (length=7)
      'calcSpec' => string 'b' (length=1)
      'calcGlyph' => string 'O' (length=1)
  1 => 
    array (size=7)
      'selected' => boolean true
      'talents' => 
        array (size=6)
          0 => 
            array (size=3)
              ...
          1 => 
            array (size=3)
              ...
          2 => 
            array (size=3)
              ...
          3 => 
            array (size=3)
              ...
          4 => 
            array (size=3)
              ...
          5 => 
            array (size=3)
              ...
      'glyphs' => 
        array (size=2)
          'major' => 
            array (size=0)
              ...
          'minor' => 
            array (size=0)
              ...
      'spec' => 
        array (size=6)
          'name' => string 'Fire' (length=4)
          'role' => string 'DPS' (length=3)
          'backgroundImage' => string 'bg-mage-fire' (length=12)
          'icon' => string 'spell_fire_firebolt02' (length=21)
          'description' => string 'Ignite enemies with balls of fire and combustive flames.' (length=56)
          'order' => int 1
      'calcTalent' => string '122012.' (length=7)
      'calcSpec' => string 'Z' (length=1)
      'calcGlyph' => string '' (length=0)

should be

print_r($array['talents'][0]);
print_r($array['glyphs']['major']);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM