print pass multidimensional cambiar asociativo array php arrays string csv implode

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));

DEMO

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 ) );