ArrayHash a cesta k zanořenému prvku uložená v proměnné

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Maekoboss
Člen | 36
+
0
-

Ahoj,

dá se nějak docílit toho, abych mohl mít uloženou cestu k zanořenému prvku v proměnné? Potřeboval bych něco takového:

$data = [
	'auto' => [
		'napravy' => [
			'kola' => [
				'jedna', 'dve'
				]
			]
		]
	];
$arrayHash = \Nette\Utils\ArrayHash::from($data, true);
$path = 'napravy->kola';
$kola = $arrayHash->auto->$path; // array (jedna, dve)

Diky za rady

CZechBoY
Člen | 3608
+
0
-

To bys musel mit same arrayhash. A stejne ta sipka by musela byt v php a ne ve stringu.

Co presne potřebuješ?

Maekoboss
Člen | 36
+
0
-

Mno potřebuju místo

$kola = $arrayHash->auto->napravy->kola;

volat jenom

$kola = $arrayHash->auto->$path;

Cesta je mi dána externě, já jí neznám, ale vim, že v hashi by měla být.

David Matějka
Moderator | 6445
+
+4
-

Na pole muzes pouzit Arrays::get (jako druhy parametr pole klicu).

Maekoboss
Člen | 36
+
0
-

Mno zatim jsem to udělal tak, že jsem si podědil ArrayHash a přidal mu metodu getByPath($path = array()). takže to můžu volat takhle $auto->getByPath($path);

Mně to asi stačí v tuhle chvíli.