开发者

accessing assocative array item by index

开发者 https://www.devze.com 2023-01-05 06:49 出处:网络
I want to ac开发者_如何学Pythoncess information in an associative array by indexlike so $arr = Array(

I want to ac开发者_如何学Pythoncess information in an associative array by index like so

$arr = Array(
    ['mgm19'] => Array(
        ['override'] => 1
    )
);

$override1 = $arr['mgm19']['override'];
$override2 = $arr[0]['override'];

but i get nothing from override2 why ?


Because $arr has only one index, mgm19. Nothing is associated to the index 0. If you don't know the index or don't want to use it, use foreach:

  foreach($arr as $value) {
     echo $value['override'];
     break; /* breaking so that we only read the first value of the array */
  }


php.net/manual/en/language.types.array.php "The indexed and associative array types are the same type in PHP, which can both contain integer and string indices." I may be wrong, but doesn't that mean it should already contain a numeric index?

No, it's saying you can use both numeric and string indicies, not that you can access them using one or the other. Remember a key is a unique value identifier, and if you're allowed to use a number or a string you cannot access them using their numeric position in the array, take the following array:

$arr = Array(
   [mgm19] => Array(
    [override] => 1
   ),
   [0] => Array(
    [override] => 1
   )
);

We're allowed to have mixed datatypes as a key, and the reason you cannot access [mgm19] as [0] is because that's not its key.

I hope that made sense :P


$arr = Array( 
    ['mgm19'] => Array( 
        ['override'] => 1 
    ) 
); 

$override1 = $arr['mgm19']['override']; 
$arrkeys = array_keys($arr);
$override2 = $arr[$arrkeys[0]]['override']; 


I would have a look at this function, http://www.php.net/manual/en/function.array-values.php which looks like it could be helpfull :)


Associative arrays cannot be accessed using the numerical position in the array.

Technically, all arrays in PHP are the same. Each position in an array is defined with either a numerical value or a string, but not both.

If you want to retrieve a specific element in the array, but not use the associative index you have defined, then use the current, prev, next, reset, and end functions.

0

精彩评论

暂无评论...
验证码 换一张
取 消