Daten aus einem multidimensionalen Array mithilfe von $_GET holen – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Daten aus einem multidimensionalen Array mithilfe von $_GET holen Fri, 10 Jun 16 15:54:53 Z https://forum.selfhtml.org/self/2016/jun/10/daten-aus-einem-multidimensionalen-array-mithilfe-von-dollar-get-holen/1669033#m1669033 https://forum.selfhtml.org/self/2016/jun/10/daten-aus-einem-multidimensionalen-array-mithilfe-von-dollar-get-holen/1669033#m1669033 <p>Hallo, ich studiere zur Zeit Medieninformatik und habe ein Projekt. Meine erste eigene Homepage erstellen. Nun hänge ich an einem Problem, was mich schon mehrere Stunden gekostet hat. Im Netz finde ich nicht wirklich eine Antwort.</p> <p>Und zwar möchte ich mithilfe von $_GET herausfinden auf welcher Seite ich mich befinde und aus folgendem Array dann zum Beispiel den "title" der Seite ausgeben.</p> <p>Array mit allen Seiteninformationen:</p> <pre><code class="block language-php"><span class="token variable">$data</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"home"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"id"</span> <span class="token operator">=></span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"path"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"home"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"lang"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"de"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Home"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"description"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Startseite"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"keywords"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"home, startseite"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"author"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Autor"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"content"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"home.php"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"subpages"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"news"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"path"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"newnews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"News"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"subpages"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"newnews"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"id"</span> <span class="token operator">=></span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"path"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"newnews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"lang"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"de"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Neusten News"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"description"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Neusten News"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"keywords"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"news, newnews, neusten news"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"author"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Autor"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"content"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"newnews.php"</span><span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"reviews"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"path"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"newreviews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Reviews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"subpages"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"newreviews"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"id"</span> <span class="token operator">=></span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"path"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"newreviews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"lang"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"de"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Neusten Reviews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"description"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Neusten Reviews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"keywords"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"review, reviews, newreviews, neusten reviews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"author"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Autor"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"content"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"newreviews.php"</span><span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Als Abfrage, auf welcher Seite ich mich gerade befinde, benutze ich folgenden Code, der aus meiner Linkstruktur - <a href="index.php?page=impressum">Impressum</a> - den Parameter page abfragt:</p> <pre><code class="block language-php"> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"page"</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$page</span> <span class="token operator">=</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"page"</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token function">array_key_exists</span><span class="token punctuation">(</span><span class="token variable">$page</span><span class="token punctuation">,</span> <span class="token variable">$data</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$page</span> <span class="token operator">=</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"page"</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token variable">$page</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"home"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token variable">$page</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"home"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Auf die Daten im Array der Seite "home" kann ich so zugreifen:</p> <pre><code class="block language-php"> <span class="token keyword">function</span> <span class="token function-definition function">getTitle</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">global</span> <span class="token variable">$data</span><span class="token punctuation">,</span> <span class="token variable">$page</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token variable">$data</span><span class="token punctuation">[</span><span class="token variable">$page</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"title"</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Jedoch geht das nicht mehr mit der Seite "news" / "newnews" im Array. Ich bekomme aus irgendwelchen Gründen einfach keine gescheite Lösung, dass die Funktion getTitle(); mir am Ende auch die Titel meiner subpages ausgibt. Ich müsste also noch zwei Arraystrukturen weiter nach unten wandern. Wie mache ich das?</p> <p>Danke und MfG</p> Daten aus einem multidimensionalen Array mithilfe von $_GET holen Fri, 10 Jun 16 16:30:22 Z https://forum.selfhtml.org/self/2016/jun/10/daten-aus-einem-multidimensionalen-array-mithilfe-von-dollar-get-holen/1669036#m1669036 https://forum.selfhtml.org/self/2016/jun/10/daten-aus-einem-multidimensionalen-array-mithilfe-von-dollar-get-holen/1669036#m1669036 <p>Hallo jannnfe,</p> <p>Ich würde die Struktur des Arrays durchlaufen, etwa so:</p> <pre><code class="block language-php"><span class="token keyword">function</span> <span class="token function-definition function">getTitle</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">global</span> <span class="token variable">$data</span><span class="token punctuation">,</span> <span class="token variable">$page</span><span class="token punctuation">;</span> <span class="token comment">// wenn get page gesetzt ist, nimm es. Sonst nimm "home"</span> <span class="token variable">$page</span> <span class="token operator">=</span><span class="token punctuation">(</span> <span class="token keyword">isset</span><span class="token punctuation">(</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"page"</span><span class="token punctuation">]</span> <span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"page"</span><span class="token punctuation">]</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">"home"</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span> <span class="token variable">$data</span> <span class="token keyword">AS</span> <span class="token variable">$ebene_1</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// "home", "news", ...</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token variable">$ebene_1</span> <span class="token operator">==</span> <span class="token variable">$page</span> <span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token variable">$data</span><span class="token punctuation">[</span><span class="token variable">$ebene_1</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"title"</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// Titel Ebene 1 und weg</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span> <span class="token variable">$ebene_1</span> <span class="token keyword">AS</span> <span class="token variable">$ebene_2</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// keine Treffer möglich</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span> <span class="token variable">$ebene_2</span> <span class="token keyword">AS</span> <span class="token variable">$ebene_3</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">// "newnews", ...</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token variable">$ebene_3</span> <span class="token operator">==</span> <span class="token variable">$page</span> <span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token variable">$data</span><span class="token punctuation">[</span><span class="token variable">$ebene_1</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token variable">$ebene_2</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token variable">$ebene_3</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"title"</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// Titel Ebene 3 und weg</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> <span class="token constant boolean">FALSE</span><span class="token punctuation">;</span> <span class="token comment">// nichtmal "home" gefunden</span> <span class="token punctuation">}</span> </code></pre> <p>Nicht getestet, der Vergleich if ( $ebene_1 (Array) == $page (String) ) kann nicht funktionieren. Aber das Prinzip ...</p> <p>Linuchs</p> Daten aus einem multidimensionalen Array mithilfe von $_GET holen Sat, 11 Jun 16 10:50:58 Z https://forum.selfhtml.org/self/2016/jun/10/daten-aus-einem-multidimensionalen-array-mithilfe-von-dollar-get-holen/1669074#m1669074 https://forum.selfhtml.org/self/2016/jun/10/daten-aus-einem-multidimensionalen-array-mithilfe-von-dollar-get-holen/1669074#m1669074 <p>Danke für deine Mühe Linuchs, hatte gestern damit herumexperimentiert, bin nur leider auch zu keinem Abschluss gekommen.</p> <p>Heute morgen habe ich es dann so hinbekomme. Sieht bestimmt nicht elegant aus und gibt eine bessere Variante aber für mich der seit paar Wochen php lernt ganz Inordnung.</p> <pre><code class="block language-php"> <span class="token variable">$data</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"home"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"id"</span> <span class="token operator">=></span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"path"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"home"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"lang"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"de"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Home"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"description"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Startseite"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"keywords"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"home, startseite"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"author"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Jan Feiler"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"content"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"home.php"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"subpages"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"news"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"path"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"newnews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"News"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"subpages"</span> <span class="token operator">=></span> <span class="token variable">$subNews</span> <span class="token operator">=</span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"newnews"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"id"</span> <span class="token operator">=></span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"path"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"newnews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"lang"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"de"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Neusten News"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"description"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Neusten News"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"keywords"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"news, newnews, neusten news"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"author"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Jan Feiler"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"content"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"newnews.php"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"musicnews"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"id"</span> <span class="token operator">=></span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"path"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"musicnews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"lang"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"de"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Musik News"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"description"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Musik News"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"keywords"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"news, musicnews, musik news"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"author"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Jan Feiler"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"content"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"musicnews.php"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"artistnews"</span> <span class="token operator">=></span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token string double-quoted-string">"id"</span> <span class="token operator">=></span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"path"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"artistnews"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"lang"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"de"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Artist News"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"description"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Artist News"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"keywords"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"news, artistnews, artist news"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"author"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"Jan Feiler"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"content"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"artistnews.php"</span><span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Habe der "subpage" einfach eine neue Variable mit Array drin übergeben und rufe nun vor jedem Abfragen diese Variable ab:</p> <pre><code class="block language-php"> <span class="token keyword">function</span> <span class="token function-definition function">getInfos</span><span class="token punctuation">(</span><span class="token operator">&</span><span class="token variable">$suchVariable</span><span class="token punctuation">,</span> <span class="token variable">$suchWert</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">global</span> <span class="token variable">$data</span><span class="token punctuation">,</span> <span class="token variable">$subNews</span><span class="token punctuation">,</span> <span class="token variable">$subReviews</span><span class="token punctuation">,</span> <span class="token variable">$subMusic</span><span class="token punctuation">;</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"page"</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$page</span> <span class="token operator">=</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"page"</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token function">array_key_exists</span><span class="token punctuation">(</span><span class="token variable">$page</span><span class="token punctuation">,</span> <span class="token variable">$data</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$suchVariable</span> <span class="token operator">=</span> <span class="token variable">$data</span><span class="token punctuation">[</span><span class="token variable">$page</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token variable">$suchWert</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token function">array_key_exists</span><span class="token punctuation">(</span><span class="token variable">$page</span><span class="token punctuation">,</span> <span class="token variable">$subNews</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$suchVariable</span> <span class="token operator">=</span> <span class="token variable">$subNews</span><span class="token punctuation">[</span><span class="token variable">$page</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token variable">$suchWert</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token function">array_key_exists</span><span class="token punctuation">(</span><span class="token variable">$page</span><span class="token punctuation">,</span> <span class="token variable">$subReviews</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$suchVariable</span> <span class="token operator">=</span> <span class="token variable">$subReviews</span><span class="token punctuation">[</span><span class="token variable">$page</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token variable">$suchWert</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span><span class="token punctuation">{</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token function">array_key_exists</span><span class="token punctuation">(</span><span class="token variable">$page</span><span class="token punctuation">,</span> <span class="token variable">$subMusic</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$suchVariable</span> <span class="token operator">=</span> <span class="token variable">$subMusic</span><span class="token punctuation">[</span><span class="token variable">$page</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token variable">$suchWert</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token variable">$suchVariable</span> <span class="token operator">=</span> <span class="token variable">$data</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"home"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token variable">$suchWert</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token variable">$infoVar</span> <span class="token operator">=</span> <span class="token variable">$data</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"home"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token variable">$infoString</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Und den endgültigen Titel der Seite füge ich so in HTML ein:</p> <pre><code class="block language-php"> <span class="token keyword">function</span> <span class="token function-definition function">getTitle</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token function">getInfos</span><span class="token punctuation">(</span><span class="token variable">$title</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"title"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token variable">$title</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Wenn jemand einen Vorschlag hat, das ganze kompakter zu gestalten, würde ich mich über eine Antwort freuen. MfG</p> Daten aus einem multidimensionalen Array mithilfe von $_GET holen Sat, 11 Jun 16 12:44:41 Z https://forum.selfhtml.org/self/2016/jun/10/daten-aus-einem-multidimensionalen-array-mithilfe-von-dollar-get-holen/1669075#m1669075 https://forum.selfhtml.org/self/2016/jun/10/daten-aus-einem-multidimensionalen-array-mithilfe-von-dollar-get-holen/1669075#m1669075 <p>Hallo jannnfe,</p> <p>irgendwie ist es schräg, was Du machst. Offenbar hast deine Site eine hierarchische Struktur, mit Ordnern wie home und news, und darin liegen php Dateien für die einzelnen Seiten. Diese Hierarchie findet sich auch in deiner Sitemap wieder. Nicht aber in deinem $page Parameter, sondern der enthält offenbar nur den Namen der Subpage.</p> <p>Mein Vorschlag wäre, dass Du auf den Page-Parameter verzichtest und dir $_SERVER['PHP_SELF'] anschaust. Wenn Du die Seite "www.jannnfe.test/news/musicnews.php" aufrufst, steht da "/news/musicnews.php" drin. Das musst Du explodieren in die Pfadbestandteile und vom letzten Teil wirfst Du das '.php' weg. Dann bekommst Du ein Array(0=>'news', 1=>'musicnews').</p> <p>Damit steigst Du dann in deine Sitemap ein und läufst rekursiv hindurch. Die eigentliche Suchfunktion sollte auch gar nicht wissen, dass Du einen Titel willst, denn du hast ja noch mehr in deinen Info-Blöcken und daher ist es besser, eine getPageInfo Funktion zu bauen, sich davon die Seiteninfos liefern zu lassen und den Titel da heraus zu holen.</p> <p>Du kannst natürlich auch bei deinem $page Parameter bleiben und den konstant durch die Aufrufe von getPageInfo schleifen.</p> <pre><code class="block language-php"><span class="token variable">$myName</span> <span class="token operator">=</span> <span class="token variable">$_SERVER</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'PHP_SELF'</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">substr</span><span class="token punctuation">(</span><span class="token variable">$myName</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">4</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'.php'</span><span class="token punctuation">)</span> <span class="token variable">$myName</span> <span class="token operator">=</span> <span class="token function">substr</span><span class="token punctuation">(</span><span class="token variable">$myName</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Am / zerlegen, aber einleitendes / ignorieren (gibt sonst leeren Pfadteil)</span> <span class="token variable">$pfad</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'/'</span><span class="token punctuation">,</span> <span class="token function">ltrim</span><span class="token punctuation">(</span><span class="token variable">$myName</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'/'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$pageInfo</span> <span class="token operator">=</span> <span class="token function">getPageInfo</span><span class="token punctuation">(</span><span class="token variable">$pfad</span><span class="token punctuation">,</span> <span class="token variable">$data</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$pageInfo</span> <span class="token operator">==</span> <span class="token constant">null</span><span class="token punctuation">)</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"Kein Titel gefunden für <span class="token interpolation"><span class="token variable">$myName</span></span>\n"</span><span class="token punctuation">;</span> <span class="token keyword">else</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"Titel für <span class="token interpolation"><span class="token variable">$myName</span></span> ist <span class="token interpolation"><span class="token punctuation">{</span><span class="token variable">$pageInfo</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'title'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span>\n"</span><span class="token punctuation">;</span> <span class="token comment">// Suche Seiten-Info zum Pfad. SiteMap als Referenz übergeben, weil PHP sonst kopiert</span> <span class="token keyword">function</span> <span class="token function-definition function">getPageInfo</span><span class="token punctuation">(</span><span class="token variable">$path</span><span class="token punctuation">,</span> <span class="token operator">&</span><span class="token variable">$siteMap</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$firstStep</span> <span class="token operator">=</span> <span class="token variable">$path</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// SiteMap ist kein Array oder Pfad-Schritt nicht in der SiteMap enthalten -> null zurückgeben</span> <span class="token comment">// Auch für Zuweisung an $node Referenz verwenden!</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">is_array</span><span class="token punctuation">(</span><span class="token variable">$siteMap</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token variable">$node</span> <span class="token operator">=</span> <span class="token operator">&</span><span class="token variable">$siteMap</span><span class="token punctuation">[</span><span class="token variable">$firstStep</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// $siteMap war kein Array oder enthielt den Pfadschritt nicht -> exitus</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$node</span> <span class="token operator">==</span> <span class="token constant">null</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token constant">null</span><span class="token punctuation">;</span> <span class="token comment">// Wir sind am Ende des Pfades -> Diesen Knoten der SiteMap zurückgeben</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$path</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token variable">$node</span><span class="token punctuation">;</span> <span class="token comment">// Ansonsten weiter mit dem Rest des Pfades und den Subpages dieses Knotens</span> <span class="token keyword">return</span> <span class="token function">getPageInfo</span><span class="token punctuation">(</span><span class="token function">array_slice</span><span class="token punctuation">(</span><span class="token variable">$path</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token variable">$node</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"subpages"</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Ich möchte zum Schluss anmerken, dass das Ganze nach Klassen und Objekten schreit, aber da Du noch einsteigst, ist es sicher besser wenn du nicht gleich bis Oberkante Nasenspitze in die Materie eintauchst.</p> <p>Gruß Rolf</p>