pass - php implode multidimensional array
php implode(101) con comillas (11)
Alternativamente, puede crear dicha función:
function implode_with_quotes(array $data)
{
return sprintf("''%s''", implode("'', ''", $data));
}
Imploding a simple array
se vería así
$array = array(''lastname'', ''email'', ''phone'');
$comma_separated = implode(",", $array);
y eso devolvería esto
lastname,email,phone
genial, así que podría hacer esto en su lugar
$array = array(''lastname'', ''email'', ''phone'');
$comma_separated = implode("'',''", $array);
$comma_separated = "''".$comma_separated."''";
y ahora tengo lo que quiero una bonita cadena csv bonita
''lastname'',''email'',''phone''
¿Hay alguna manera mejor de hacer esto? Me parece que debería haber un parámetro opcional para la implosión. ¿Me falta algo?
Creo que esto es lo que estás tratando de hacer
$array = array(''lastname'', ''email'', ''phone'');
echo "''" . implode("'',''", explode('','', $array)) . "''";
No sé si es más rápido, pero podrías guardar una línea de código con tu método:
De
$array = array(''lastname'', ''email'', ''phone'');
$comma_separated = implode("'',''", $array);
$comma_separated = "''".$comma_separated."''";
A:
$array = array(''lastname'', ''email'', ''phone'');
$comma_separated = "''".implode("'',''", $array)."''";
No, la forma en que lo haces está bien. implode()
solo toma 1-2 parámetros (si solo provee una matriz, une las piezas con una cadena vacía).
Otra opción posible, dependiendo de para qué necesita la matriz:
$array = array(''lastname'', ''email'', ''phone'');
echo json_encode($array);
Esto pondrá ''['' y '']'' alrededor de la cadena, que puede o no puede querer.
Puede usar array_map()
:
function add_quotes($str) {
return sprintf("''%s''", $str);
}
$csv = implode('','', array_map(''add_quotes'', $array));
También tenga en cuenta que hay fputcsv
si desea escribir en un archivo.
Si desea evitar los subsistemas fopen / fputcsv aquí hay un fragmento que crea una cadena CSV escapada de una matriz asociativa ....
$output = '''';
foreach ($list as $row) {
$output .= ''"'' . implode(''", "'', array_values($row)) . ''"'' . "/r/n";
}
O de una lista de objetos ...
foreach ($list as $obj) {
$output .= ''"'' . implode(''", "'', array_values((array) $obj)) . ''"'' . "/r/n";
}
Luego puede dar salida a la cadena como lo desee.
Si desea usar loops, también puede hacer:
$array = array(''lastname'', ''email'', ''phone'');
foreach($array as &$value){
$value = "''$value''";
}
$comma_separated = implode(",", $array);
Demostración: http://codepad.org/O2kB4fRo
puedes hacerlo de esta manera también
<?php
$csv= ''/''' . join(array(''lastname'', ''email'', ''phone''),''/','').''/''';
echo $csv;
?>
$array = array(''lastname'', ''email'', ''phone'');
echo "''" . implode("'',''", $array) . "''";
$ids = sprintf("''%s''", implode("'',''", $ids ) );