Question: I have this exath path saved somewhere:

```
Array
(
    [0] => library
    [1] => 1
    [2] => book
    [3] => 0
    [4] => title
    [5] => 1
)

```

I have some array and I want to change the value on this index:

```
$values[library][1][book][0][title][1] = "new value";

```

I have no idea, how to do this, because there can be any (unknown) number of dimensions. Any hints?

Answer: 
It makes sense to create a function that does this, so:

```
function array_path_set(array & $array, array $path, $newValue) {
    $aux =& $array;
    foreach ($path as $key) {
        if (isset($aux[$key])) {
            $aux =& $aux[$key];
        } else {
            return false;
        }
    }
    $aux = $newValue;
    return true;
}
$values = array(
    'library' => array(
        1 => array(
            'book' => array(
                0 => array(
                    'title' => array(
                        1 => 'MAGIC VALUE!',
                    ),
                ),
            ),
        ),
    ),
);
$path = array('library', 1, 'book', 0, 'title', 1);
$newValue = 'ANOTHER MAGIC VALUE!';

var_dump($values);
var_dump(array_path_set($values, $path, $newValue));
var_dump($values);

```
Are you trying to provide a new value for the title of book 0 in library 1? If so, you will have to search for library "1", with book "0" and then change the value of the "title". So if all your values in the array have the same six entries, start with loc = 0 look at the values at loc+1 (library id), loc+3 (book id) and loc+5 .. change title) .. if not increment loc by 6 and continue searching.

[sounds like homework, so no code provided. Pardon me if I am wrong.]