¿Hay alguna función para explotar e implosionar repetidamente arrays multidimensionales en PHP?Implantar y explotar matrices multidimensionales
Respuesta
Puede hacer esto escribiendo una función recursiva:
function multi_implode($array, $glue) {
$ret = '';
foreach ($array as $item) {
if (is_array($item)) {
$ret .= multi_implode($item, $glue) . $glue;
} else {
$ret .= $item . $glue;
}
}
$ret = substr($ret, 0, 0-strlen($glue));
return $ret;
}
En cuanto a la explosión, esto es imposible a menos que dar algún tipo de estructura formal de la cadena, en cuyo caso usted está en el reino de la serialización , para las cuales ya existen funciones: serialize, json_encode, http_build_query entre otros.
¡Ah! ¡Serialize es lo que no sabía que necesitaba! – HyderA
¿Alguna forma de implosionar solo ciertas columnas dentro de las matrices de matrices? así, pero imprime solo los campos db? –
Puede usar array_walk_recursive
para llamar a una función dada en cada valor de la matriz recursivamente. El aspecto de esa función depende de los datos reales y de lo que intenta hacer.
Hice dos funciones recursivas para implosionar y explotar. El resultado de multi_explode
puede no funcionar como se esperaba (todos los valores están almacenados en el mismo nivel de dimensión).
function multi_implode(array $glues, array $array){
$out = "";
$g = array_shift($glues);
$c = count($array);
$i = 0;
foreach ($array as $val){
if (is_array($val)){
$out .= multi_implode($glues,$val);
} else {
$out .= (string)$val;
}
$i++;
if ($i<$c){
$out .= $g;
}
}
return $out;
}
function multi_explode(array $delimiter,$string){
$d = array_shift($delimiter);
if ($d!=NULL){
$tmp = explode($d,$string);
foreach ($tmp as $key => $o){
$out[$key] = multi_explode($delimiter,$o);
}
} else {
return $string;
}
return $out;
}
Para utilizarlos:
echo $s = multi_implode(
array(';',',','-'),
array(
'a',
array(10),
array(10,20),
array(
10,
array('s','t'),
array('z','g')
)
)
);
$a= multi_explode(array(';',',','-'),$s);
var_export($a);
he encontrado que var_export es bueno si necesita una representación de cadena legible (explosión) de la matriz multidimensional sin imprimir automáticamente el valor como var_dump.
- 1. PHP: Combinar matrices multidimensionales
- 2. matrices multidimensionales de JavaScript
- 3. array_diff() con matrices multidimensionales
- 4. Powershell matrices multidimensionales
- 5. array_map para matrices multidimensionales
- 6. PHP ordenar matrices multidimensionales
- 7. Usando numpy.argmax() en matrices multidimensionales
- 8. indexOf sintaxis para matrices multidimensionales?
- 9. PHP combina dos matrices multidimensionales
- 10. eficiente System.arraycopy en matrices multidimensionales
- 11. ¿Cuál es la diferencia entre matrices de matrices y matrices multidimensionales?
- 12. Comparación de rendimiento de matriz de matrices vs matrices multidimensionales
- 13. matrices multidimensionales en una estructura en C#
- 14. BASH: necesito ayuda con matrices asociativas multidimensionales
- 15. Crear objeto multidimensional con matrices multidimensionales
- 16. La confusión acerca de los punteros y matrices multidimensionales
- 17. ¿Cómo hago referencia a las matrices multidimensionales?
- 18. Matrices multidimensionales anidadas a profundidad ilimitada
- 19. Implementación eficiente de matrices multidimensionales en Java?
- 20. iteración de matriz Awk para matrices multidimensionales
- 21. C sintaxis extraña serie de matrices multidimensionales
- 22. ¿Cómo comparar matrices multidimensionales en C#?
- 23. ¿Cómo puedo crear matrices multidimensionales en Perl?
- 24. ¿Clonación profunda de matrices multidimensionales en Java ...?
- 25. Jquery: cómo explotar el valor de las matrices
- 26. Optimización de la serialización binaria para matrices genéricas multidimensionales
- 27. ¿Cómo manejo mejor las matrices multidimensionales dinámicas en C/C++?
- 28. ¿Cómo se formatean matrices multidimensionales en la memoria?
- 29. conversión de matrices multidimensionales a los punteros en C++
- 30. Numeración de matrices multidimensionales indexando swaps eje orden
Creo que ustedes saltaron el arma. La pregunta que marcó como respuesta no es exactamente la respuesta a esta pregunta. Debes leer antes de presionar ese botón de engaño. No es tan dificil. – Jeffz
Esta pregunta está marcada incorrectamente como un duplicado de [implode-data-from-a-multi-dimensional-array] (http://stackoverflow.com/questions/16710800/implode-data-from-a-multi-dimensional- formación). Esta pregunta se trata de implosionar/explotar en general, mientras que la otra se trata de implosionar una sola clave en una matriz multidimensional. –
json_encode/json_decode también son buenas formas de empaquetar, descomprimir y almacenar matrices multidimensionales. json_encode puede codificar matrices como '['foo' => ['bar' => 1, 'baz' => [2,3]]]' y devolverá una cadena como '{" foo ": {" bar ": 1, "baz": [2,3]}} '. json_decode puede devolver la cadena codificada JSON como un objeto. Los datos JSON son útiles al pasar datos de PHP a Javascript como JSON ('stdClass Object ([foo] => stdClass Object ...}') –