implode
adalah salah satu fungsi bawaan PHP untuk mengubah/ menyatukan elemen-elemen array $pieces menjadi sebuah string. Dengan menggunakan fungsi implode
ini kita juga bisa menentukan string penghubung atau $glue antar element-elemen array tersebut./** * @param string $glue - String yang menjadi penghubung antar element * @param string $pieces - array yang elemen-elemennya akan disatukan kedalam string * return string - Hasil penggabungan elemen-elemen pada $pieces */ implode($glue, array $pieces)Fungsi ini sangat mudah digunakan dan berguna,
misal:
kita memiliki array
$ternak
<?php $ternak = array('sapi', 'ayam', 'kambing', 'kelinci'); $stringHasil = implode(', ', $ternak); echo $stringHasil; ?>akan menghasilkan tampilan seperti ini:
sapi, ayam, kambing, kelinci
Sayangnya di beberapa bahasa lain fungsi ini tidak tersedia, atau memiliki nama/ syntax yang berbeda, sehingga tidak diketahui keberadaannya. Meskipun cukup mudah dibuat tetapi sering kali malas untuk menulisnya, dan juga bagi beberapa programmer pemula mungkin agak kesulitan dalam membuat persamaan fungsi ini kedalam bahasa yang digunakannya, seperti C, Java, dan Visual Basic (VB6).
fungsi implode pada C
#include <stdio.h> #include <stdlib.h> #include <string.h> char* implode(char* glue, char** pieces, int elementCount){ int resultStringLength = 0; int elementStringLengths[elementCount]; const glueLength = strlen(glue); int i = 0; int nextStringAdress = 0; for(i; i < elementCount; i++) { printf("%s\n", &(*(*pieces+nextStringAdress))); elementStringLengths[i] = strlen( &(*(*pieces + nextStringAdress))); nextStringAdress += elementStringLengths[i] + 1; } resultStringLength = nextStringAdress + elementCount - 1 + glueLength; char *concatenated = calloc(resultStringLength, sizeof(char)); i = 0; nextStringAdress = 0; for(i; i < elementCount; i++){ strncat(concatenated, &(*(*pieces+nextStringAdress)), elementStringLengths[i]); nextStringAdress += elementStringLengths[i] + 1; strncat(concatenated, glue, glueLength); } char *result = calloc(resultStringLength - glueLength, sizeof(char)); memcpy(result, concatenated, resultStringLength - glueLength - 1); free(concatenated); return result; }Contoh penggunaan fungsi
implode
pada C:
char *ternak[] = {"sapi", "ayam", "kambing", "kelinci"}; char *stringHasil = implode(", ", ternak, 4); printf("%s", stringHasil);
fungsi implode pada Java
public String implode(String glue, String[] pieces){ StringBuilder buffer = new StringBuilder(); // demi compability saya tidak menggunakan foreach (di Java ME tidak ada) for(int i = 0; i < pieces.length; i++){ buffer.append(pieces[i]).append(glue); } if(buffer.length() > 0){ buffer.setLength(buffer.length() - glue.length()); } return buffer.toString(); }Contoh penggunaan fungsi
implode
di Java:
String[] ternak = new String[]{"sapi", "ayam", "kambing", "kelinci"}; String stringHasil = implode(", ", ternak); System.out.println(stringHasil);
fungsi implode pada Visual Basic (VB6)
Pada Visual Basic tidak perlu membuat fungsi baru, karena bawaannya telah terdapat fungsiJoin
yang memiliki kegunaan yang sama dengan fungsi implode
di PHPSyntax:
Function Join(SourceArray, [Delimiter]) As StringContoh penggunaan fungsi
Join
pada Visual Basic (VB6):
Dim ternak(4) As String dim stringHasil as String ternak(0) = "sapi" ternak(1) = "ayam" ternak(2) = "kambing" ternak(3) = "kelinci" stringHasil = Join ternak, ", "
Komentar
Posting Komentar