Umwandeln eines Strings mit einer Array-Struktur in ein Array
Problem:
Sie haben einen String, der ein verschachteltes Array darstellt Struktur, und Sie müssen sie in ein tatsächliches Array konvertieren. Zum Beispiel mit der folgenden Zeichenfolge:
Main.Sub.SubOfSub
Und einem Datenwert:
SuperData
Sie möchten ein Array wie folgt erstellen:
Array
(
[Main] => Array
(
[Sub] => Array
(
[SubOfSub] => SuperData
)
)
)
Lösung:
Um den String in ein Array umzuwandeln, können Sie die folgenden Schritte verwenden:
-
Teilen Sie den String in ein Array von Schlüsseln auf: Verwenden Sie die Funktion explosion(), um die Zeichenfolge durch den Punkt (.) als Trennzeichen zu teilen. Dadurch erhalten Sie ein Array der Schlüssel in der verschachtelten Array-Struktur.
-
Erstellen Sie einen Verweis auf die Wurzel des Arrays: Verwenden Sie die Variable &$target, um einen Verweis auf zu erstellen Wurzel des Arrays. Dadurch können Sie die Array-Struktur ändern, während Sie durch die Schlüssel iterieren.
-
Durch die Schlüssel iterieren: Iterieren Sie durch die Schlüssel im Schlüsselarray. Überprüfen Sie für jeden Schlüssel, ob er auf der aktuellen Ebene des Arrays vorhanden ist. Wenn dies nicht der Fall ist, erstellen Sie ein neues Array für diesen Schlüssel.
-
Aktualisieren Sie die Referenz: Nachdem Sie das Array für den aktuellen Schlüssel erstellt haben, aktualisieren Sie die Referenz so, dass sie auf den neuen zeigt Array. Dadurch können Sie die verschachtelte Struktur weiter nach unten iterieren.
-
Wert zuweisen: Nachdem Sie den Blattknoten der verschachtelten Struktur erreicht haben, weisen Sie den Datenwert dem letzten Schlüssel zu.
Hier ist ein Codeausschnitt, der die Schritte demonstriert:
<code class="php">$key = "Main.Sub.SubOfSub";
$target = array();
$value = "SuperData";
$path = explode('.', $key);
$root = &$target;
while(count($path) > 1) {
$branch = array_shift($path);
if (!isset($root[$branch])) {
$root[$branch] = array();
}
$root = &$root[$branch];
}
$root[$path[0]] = $value;</code>
Dieser Codeausschnitt erstellt die gewünschte Array-Struktur, wobei der Datenwert im endgültigen Schlüssel gespeichert wird.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen String, der eine verschachtelte Array-Struktur darstellt, in ein Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn