/ / Ottieni elementi nell'array multidimensionale utilizzando un numero indeterminato di chiavi: php, array, array multidimensionale

Ottieni un elemento nell'array multidimensionale utilizzando un numero indeterminato di chiavi: php, array, array multidimensionale

Questo è un po 'strano, ma non riesco a capirlo: ho una matrice multidimensionale che ha una lunghezza sconosciuta e un numero sconosciuto di dimensioni e ho anche una serie di chiavi come questa:

$keys = array(0, 2, 1, 0);

Ora, se questa serie di chiavi avesse una determinata dimensione, avrei semplicemente potuto accedere alla mia matrice multidimensionale in questo modo:

$multidimensional_array[$keys[0]][$keys[1]][$keys[2]][$keys[3]];

Il problema è che non lo fa, la lunghezza della matrice delle chiavi cambierà molto. Qualcuno sa di un loop che può scorrere attraverso gli array di chiavi e quindi accedere di conseguenza all'array multidimensionale?

risposte:

1 per risposta № 1

Supponendo tale matrice:

$multidimensional_array = array(
0 => array(
2 => array(
1 => array(
0 => "value"
)
)
)
);

E queste chiavi:

$keys = array(0, 2, 1, 0);

Tu puoi fare:

$current = $multidimensional_array;
foreach($keys as $key) {
$current = $current[$key];
}

var_dump($current); //"value"

Modificare:

Ecco un esempio con riferimenti.

$current = &$multidimensional_array;  // <- $current is reference
foreach($keys as $key) {
$current = &$current[$key];   // <- $current is reference again
}

var_dump($current); //"value"
$current = "otherValue"; // $multidimensional_array[0][2][1][0] value changed to "otherValue"

unset($current); // remove reference to be sure you won"t break something later by an accident

https://3v4l.org/OuAiQ