Der einfachste Weg, ein zweidimensionales Array zu implodieren ()?
Lesezeit: 3 Minuten
Ich bin neu in PHP und habe nicht ganz den Überblick darüber, wie es funktioniert. Wenn ich ein zweidimensionales Array als solches habe (von einer Datenbank zurückgegeben):
und wollen es in die Zeichenfolge verwandeln 5,3,4 wie würde man das am schnellsten machen? Ich habe derzeit eine unangenehme foreach Schleife, hatte aber gehofft, dass es in einer Zeile gemacht werden könnte. Ein Standard implode gibt mir Array,Array,Array.
Sie können alle Zeilenumbrüche in Ihrer entfernen foreach.
– Alex Turpin
14. Juni 2012 um 17:28 Uhr
Was ich versuche zu sagen, ist, dass es Ihnen egal sein sollte, wenn etwas ein paar Zeilen verwendet.
– Alex Turpin
14. Juni 2012 um 17:28 Uhr
@ Xeon06 Obwohl ich grundsätzlich zustimme, würde ich gerne sehen, ob es einen raffinierten Weg gibt, es besser zu machen. Die Hälfte dieses Projekts besteht aus Lernen, die andere Hälfte aus tatsächlichem Programmieren. (Noch besser, ich könnte alle Zeilenumbrüche entfernen und meinem Chef sagen, dass der Code nur einen Einzeiler braucht)
– Einige Kätzchen
14. Juni 2012 um 17:33 Uhr
mögliches Duplikat von PHP: Implodieren Sie Daten aus einem mehrdimensionalen Array
– Benutzer1645055
23. November 2013 um 5:26 Uhr
Paul
Dies ändert Ihr Array mit array_mapaber wahrscheinlich zum Besseren, indem Sie es in ein 1D-Array von verwandeln tag_id‘s. Dann können Sie einfach implode wie gewohnt verwenden:
Nun, Sie können das Ergebnis tatsächlich weitergeben array_map direkt ins implode Forderung. )
– raina77ow
14. Juni 2012 um 17:33 Uhr
@ raina77ow Ja, aber ich denke, es könnte besser sein, das ursprüngliche Array zu ändern, da die zusätzliche Dimension nutzlos erscheint. Ich werde meine Antwort aber aktualisieren 🙂
– Paulus
14. Juni 2012 um 17:34 Uhr
Bruce Lim
Sie haben nach einem zweidimensionalen Array gefragt, hier ist eine Funktion, die für mehrdimensionale Arrays funktioniert.
<?php
/**
* Implode an array with the key and value pair giving
* a glue, a separator between pairs and the array
* to implode.
* @param string $glue The glue between key and value
* @param string $separator Separator between pairs
* @param array $array The array to implode
* @return string The imploded array
*/
function array_implode( $glue, $separator, $array ) {
if ( ! is_array( $array ) ) return $array;
$string = array();
foreach ( $array as $key => $val ) {
if ( is_array( $val ) )
$val = implode( ',', $val );
$string[] = "{$key}{$glue}{$val}";
}
return implode( $separator, $string );
}
?>
Wenn Sie nur den Wert (und nicht den Schlüssel) zurückgeben möchten, ändern Sie einfach das obige, um es zu verwenden $string[] = "{$val}";.
Sie können alle Zeilenumbrüche in Ihrer entfernen
foreach
.– Alex Turpin
14. Juni 2012 um 17:28 Uhr
Was ich versuche zu sagen, ist, dass es Ihnen egal sein sollte, wenn etwas ein paar Zeilen verwendet.
– Alex Turpin
14. Juni 2012 um 17:28 Uhr
@ Xeon06 Obwohl ich grundsätzlich zustimme, würde ich gerne sehen, ob es einen raffinierten Weg gibt, es besser zu machen. Die Hälfte dieses Projekts besteht aus Lernen, die andere Hälfte aus tatsächlichem Programmieren. (Noch besser, ich könnte alle Zeilenumbrüche entfernen und meinem Chef sagen, dass der Code nur einen Einzeiler braucht)
– Einige Kätzchen
14. Juni 2012 um 17:33 Uhr
mögliches Duplikat von PHP: Implodieren Sie Daten aus einem mehrdimensionalen Array
– Benutzer1645055
23. November 2013 um 5:26 Uhr