简体   繁体   中英

How to accesss php associative array values?

My var_dump $data looks something like this. I am looping through user names and I need to get the value "username1"

$key returns an integer when I loop through $key=>$value.

array(1) {
  ["username1"]=>
  array(2) {
    ["enum"]=>;
    array(1) {
      [1]=>;
      array(1) {
        ["label"]=>;
        bool(true)
        }
      }
    ["total"]=>;
    int(20)
  }

Edit 1: here's my code
assignment

foreach($keys as $key){
            $this->data[] = array_fill_keys($keys,$this->getData($key, date('Y')));
}

function getData

private function getData($key, $year)
    {
        return isset($this->datas[$key][$year]) ? $this->datas[$key][$year] : array();
    }

loop to access value

foreach($this->data as $kpi=>$value)
{
            var_dump($kpi);
}

Solution:

The problem was here

$this->data[] = array_fill_keys($keys,$this->getData($key, date('Y')));

The data[] array had integer indexes.

iterating through $this->data[1] gives me the key values.

But However, I feel there is a better way to handle this, Could someone please help me to improve this?

sorry for writing comment as an answer earlier. Question was not clear.

Basically the type of associative array you trying to do should look like something like this.

'$keys = array( "username1" =>array( “enum” => (int)3, “label” => true, “total => (int)20 ));'

So the value of “username1” is going to be arrays of “enum” and “label”

Lastly the as $key array must be written like '$key['enum'] $key['label'] $key['total'] right after the foreach command

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