2

I have a little problem. I need index an php array by array variable.

Example:

$structure = [];
$url = "/one/two/three";
$urlParts = explode("/", $url);

// I need convert $urlParts -> to array index ["one"]["two"]["three"]
// Expected result
$structure["one"]["two"]["three"] = true;

Is it possible in php language?

LF00
  • 27,015
  • 29
  • 156
  • 295
janatjak
  • 63
  • 1
  • 3

1 Answers1

3

You can use reference to get it like this:

<?php
$urlParts = ['one', 'two', 'three'];
$o = [];
$ref = &$o;
$len = count($urlParts);
foreach($urlParts as $k => $v)
{
    $ref[$v] = [];
    $ref = &$ref[$v];
}
$ref = true;
var_dump($o);
echo var_dump($o['one']['two']['three']);

output:

ei@localhost:~$ php test.php
array(1) {
  ["one"]=>
  array(1) {
    ["two"]=>
    array(1) {
      ["three"]=>
      &bool(true)
    }
  }
}
bool(true)
LF00
  • 27,015
  • 29
  • 156
  • 295