364 Stimmen

Konvertierung eines flachen Arrays in eine durch Trennzeichen getrennte Zeichenkette, die in der Datenbank gespeichert werden soll

Was ist die beste Methode, um ein PHP-Array in einen String zu konvertieren?
Ich habe die Variable $type die ein Array von Typen ist.

$type = $_POST[type];

Ich möchte sie als eine einzige Zeichenkette in meiner Datenbank speichern, wobei jeder Eintrag durch | :

Sports|Festivals|Other

441voto

Niet the Dark Absol Punkte 310257

Verwenden Sie implodieren

implode("|",$type);

278voto

Jakub Punkte 20232

Sie können verwenden json_encode()

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

Verwenden Sie später einfach json_decode() um die Zeichenkette aus Ihrer DB zu dekodieren. Alles andere ist nutzlos, JSON hält die Array-Beziehung für die spätere Verwendung intakt!

56voto

sumit Punkte 1705
json_encode($data) //converts an array to JSON string
json_decode($jsonString) //converts json string to php array

WARUM JSON: Sie können es mit den meisten Programmiersprachen verwenden, die von der serialize()-Funktion von PHP erstellte Zeichenkette ist nur in PHP lesbar, und Sie werden solche Dinge nicht in Ihren Datenbanken speichern wollen, besonders wenn die Datenbank von Anwendungen genutzt wird, die in verschiedenen Programmiersprachen geschrieben wurden.

46voto

vvkatwss vvkatwss Punkte 3085

Einer der besten Wege:

echo print_r($array, true);

38voto

Incognito Punkte 19941

Nein, Sie wollen sie nicht als einzelne Zeichenfolge in Ihrer Datenbank speichern.

Sie könnten verwenden serialize() Dies erschwert jedoch die Suche nach und die Arbeit mit Ihren Daten und verschwendet Platz.

Sie könnten auch eine andere Kodierung verwenden, aber das ist im Allgemeinen mit dem gleichen Problem verbunden.

Der ganze Grund, warum Sie eine DB haben, ist, dass Sie solche Arbeiten auf einfache Weise erledigen können. Sie brauchen keine Tabelle, um Arrays zu speichern, Sie brauchen eine Tabelle, die Sie als Array darstellen können.

Beispiel:

id | word
1  | Sports
2  | Festivals
3  | Classes
4  | Other

Sie würden die Daten einfach mit SQL aus der Tabelle auswählen, anstatt eine Tabelle zu haben, die so aussieht:

id | word
1  | Sports|Festivals|Classes|Other

So entwirft niemand ein Schema in einer relationalen Datenbank, das verfehlt völlig den Zweck der Datenbank.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X