explode array php
Array to String PHP? (11)
Esta guarda LLAVES Y VALORES
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;
}
Espero que ayude a alguien.
¿Cuál es el mejor método para convertir una matriz de PHP en una cadena?
Tengo la variable $type
que es una matriz de tipos.
$type = $_POST[type];
Quiero almacenarlo como una sola cadena en mi base de datos con cada entrada separada por |
:
Deportes | Festivales | Otros
No, no desea almacenarlo como una sola cadena en su base de datos de esa manera.
Podría usar serialize()
pero esto hará que sus datos sean más difíciles de buscar, más difíciles de trabajar y desperdicie espacio.
También puede hacer otra codificación, pero generalmente es propenso al mismo problema.
La razón principal por la que tiene una base de datos es para que pueda realizar un trabajo como este de forma trivial. No necesita una tabla para almacenar arrays, necesita una tabla que pueda representar como una matriz.
Ejemplo:
id | word
1 | Sports
2 | Festivals
3 | Classes
4 | Other
Simplemente seleccionaría los datos de la tabla con SQL, en lugar de tener una tabla que se vea así:
id | word
1 | Sports|Festivals|Classes|Other
No es así como nadie diseña un esquema en una base de datos relacional, sino que anula totalmente su propósito.
Para las matrices asociativas de tienda puede usar serialize
:
$arr = array(
''a'' => 1,
''b'' => 2,
''c'' => 3
);
file_put_contents(''stored-array.txt'', serialize($arr));
Y carga utilizando unserialize
:
$arr = unserialize(file_get_contents(''stored-array.txt''));
print_r($arr);
Pero si necesita crear archivos dinámicos .php
con matriz (por ejemplo, archivos de configuración), puede usar var_export(..., true);
, Me gusta esto:
Guardar en archivo:
$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);
Obtener valores de matriz:
$arr = include ''config.php'';
print_r($arr);
Puedes usar json_encode()
<?php
$arr = array(''a'' => 1, ''b'' => 2, ''c'' => 3, ''d'' => 4, ''e'' => 5);
echo json_encode($arr);
?>
Más tarde, simplemente use json_decode() para decodificar la cadena de su base de datos. ¡Cualquier otra cosa es inútil, JSON mantiene intacta la relación de matriz para su uso posterior!
Puedes usar la función de cadena de PHP implode()
Me gusta,
<?php
$sports=$_POST[''sports''];;
$festival=$_POST[''festival''];
$food=$_POST[''food''];
$array=[$sports,$festival,$food];
$string=implode(''|'',$array);
echo $string;
?>
Si, por ejemplo, $sports=''football'';
$festival=''janmastami'';
$food=''biriyani'';
Entonces la salida sería:
football|janmastami|biriyani
Para obtener más detalles sobre la función implosionar () de PHP, consulte w3schools
Simplemente use implode
implode("|",$type);
Una de las mejores formas:
echo print_r($array, true);
hay muchas maneras ,
Dos mejores maneras para esto son
------- 1 ----------
<?php
$arr = array(''a'' => 1, ''b'' => 2, ''c'' => 3, ''d'' => 4, ''e'' => 5);
echo json_encode($arr);
//ouputs as
{"a":1,"b":2,"c":3,"d":4,"e":5}
<?php
$b = array (''m'' => ''monkey'', ''foo'' => ''bar'', ''x'' => array (''x'', ''y'', ''z''));
$results = print_r($b, true); // $results now contains output from print_r
?>
implode :
<?php
$string = implode(''|'',$types);
Sin embargo, Incognito tiene razón, es probable que no quiera almacenarlo de esa manera, es un desperdicio total del poder relacional de su base de datos.
Si no está configurado para serializar, también podría considerar usar json_encode()
$data = array("asdcasdc","35353","asdca353sdc","sadcasdc","sadcasdc","asdcsdcsad");
$string_array = json_encode($data);
Ahora puede insertar este valor $ string_array en la base de datos
json_encode($data) //converts an array to JSON string
json_decode($jsonString) //converts json string to php array
POR QUÉ JSON: Puede usarlo con la mayoría de los lenguajes de programación, la cadena creada por la función serialize () de php es legible solo en PHP, y no le gustará almacenar esas cosas en sus bases de datos, especialmente si la base de datos se comparte entre aplicaciones escritas en diferentes lenguajes de programacion