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

14voto

timdev Punkte 59971

implode() :

<?php
$string = implode('|',$types);

Incognito hat jedoch recht, Sie wollen es wahrscheinlich nicht auf diese Weise speichern - es ist eine totale Verschwendung der relationalen Leistung Ihrer Datenbank.

Wenn Sie fest entschlossen sind, zu serialisieren, können Sie auch die Verwendung von json_encode()

14voto

Ante Braovic Punkte 457

Dieser spart KEYS & VALUES

function array2string($data){
    $log_a = "";
    foreach ($data as $key => $value) {
        if(is_array($value))    $log_a .= "[".$key."] => (". array2string($value). ") \n";
        else                    $log_a .= "[".$key."] => ".$value."\n";
    }
    return $log_a;
}

Ich hoffe, es hilft jemandem.

9voto

Akbar Mirsiddikov Punkte 996
$data = array("asdcasdc","35353","asdca353sdc","sadcasdc","sadcasdc","asdcsdcsad");

$string_array = json_encode($data);

jetzt können Sie diesen $string_array-Wert in die Datenbank einfügen

6voto

Für die Speicherung assoziativer Arrays können Sie verwenden serialize :

$arr = array(
    'a' => 1,
    'b' => 2,
    'c' => 3
);

file_put_contents('stored-array.txt', serialize($arr));

Und laden mit unserialize :

$arr = unserialize(file_get_contents('stored-array.txt'));

print_r($arr);

Aber bei Bedarf schaffen dinamic .php Dateien mit Array (zum Beispiel Konfigurationsdateien), können Sie var_export(..., true); etwa so:

In Datei speichern:

$arr = array(
    'a' => 1,
    'b' => 2,
    'c' => 3
);

$str = preg_replace('#,(\s+|)\)#', '$1)', var_export($arr, true));
$str = '<?php' . PHP_EOL . 'return ' . $str . ';';

file_put_contents('config.php', $str);

Array-Werte abrufen:

$arr = include 'config.php';

print_r($arr);

6voto

HOSSEIN B Punkte 166

Sie können verwenden serialize :

$array = array('text' => 'Hello world', 'value' => 100);
$string = serialize($array); // a:2:{s:4:"text";s:11:"Hello world";s:5:"value";i:100;}

und verwenden unserialize um String in Array zu konvertieren:

$string = 'a:2:{s:4:"text";s:11:"Hello world";s:5:"value";i:100;}';
$array = unserialize($string); // 'text' => 'Hello world', 'value' => 100

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