Está en la página 1de 3

Registrarse Guías Aprende Iniciar Sesión

F o ro s del W eb » Pro gram ando para Internet » PH P »

[A p o rte ] C re a r a rra y m u ltid im e n s io n a l


d in á m ic a m e n te d e u n a c a d e n a
Estas en el tema de [Aporte] Crear array multidimensional dinámicamente de una cadena en el foro de PHP en Foros del Web. Saludos, Estaba preparando una
forma de leer unos archivos ini en forma dinámica y necesitaba crear array multidimensionales para acceder a las diferentes areas y ...

01/02/2013, 18:46 #1 (p e r m a lin k )


Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
abim aelrc Mensajes: 14.728
C olaborador Antigüedad: 8 años
Puntos: 1512

[Aporte] Crear array multidimensional dinámicamente de una cadena

Saludo s ,

Es taba preparando una fo rm a de leer uno s arc hiv o s ini en fo rm a dinám ic a y nec es itaba c rear array m ultidim ens io nales para ac c eder a las
diferentes areas y s e m e o c urrió c rear es ta func ió n, es tuv e un rato para que en po c as líneas hic iera lo que quería, lo dejo po r s i le s irv e a alguien
en algún futuro y s i alguien la quiere m ejo rar pues bienv enido

C ó digo PH P:

Ver original
1. function createMultidimensionalArray($keys, $value = null, $delimiter = '.')
2. {
3. $keysArray = explode($delimiter, $keys);
4. $func = function ($keys, $value) use (&$func) {
5. $fixValue = array();
6. $keys = array_reverse($keys);
7. $key = array_pop($keys);
8. $keys = array_reverse($keys);
9. $fixValue[$key] = (empty($keys) === false)
10. ? $func($keys, $value)
11. : ((empty($value) === true) ? $key : $value);
12.
13. return $fixValue;
14. };
15.
16. return $func($keysArray, $value);
17. }
18.
19. echo '<pre>';
20. var_dump(createMultidimensionalArray('foo.bar.baz'));
21. var_dump(createMultidimensionalArray('1.2.3'));
22. var_dump(createMultidimensionalArray('foo', 'bar'));
23. var_dump(createMultidimensionalArray('baz.bat', 'candy'));
24. echo '</pre>';

C ó digo lo c alho s t:

converted by W eb2PDFConvert.com
Ver original
1. array(1) {
2. ["foo"]=>
3. array(1) {
4. ["bar"]=>
5. array(1) {
6. ["baz"]=>
7. string(3) "baz"
8. }
9. }
10. }
11. array(1) {
12. [1]=>
13. array(1) {
14. [2]=>
15. array(1) {
16. [3]=>
17. string(1) "3"
18. }
19. }
20. }
21. array(1) {
22. ["foo"]=>
23. string(3) "bar"
24. }
25. array(1) {
26. ["baz"]=>
27. array(1) {
28. ["bat"]=>
29. string(5) "candy"
30. }
31. }

__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - E uge nio M a r ia d e H o s to s
Última edición por abimaelrc; 01/02/2013 a las 19:06 Razón: arreglar variables

01/02/2013, 21:28 #2 (p e r m a lin k )


Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
dashtrash Mensajes: 925
C olaborador Antigüedad: 10 años, 2 meses
Puntos: 269
Respuesta: [Aporte] Crear array multidimensional dinámicamente de una cadena

M e parec e dem as iado enrev es ado ..


C ó digo PH P:

Ver original
1. function multidim($key,$value,$delimiter='.')
2. {
3. $parts=explode($delimiter,$key);
4. $result=array();
5. $cur=& $result;
6. foreach($parts as $temp)
7. $cur=& $cur[$temp];
8. $cur=$value;
9. return $result;
10. }
11. var_dump(multidim('a.b.c',3));
12. var_dump(multidim('a',1));

__________________
Rethinking PHP development
Mi sistema de plantillas

02/02/2013, 07:55 #3 (p e r m a lin k )


Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
abim aelrc Mensajes: 14.728
C olaborador Antigüedad: 8 años
Puntos: 1512

Respuesta: [Aporte] Crear array multidimensional dinámicamente de una cadena

converted by W eb2PDFConvert.com
M e gus ta, m e gus ta, no us as func io nes rec urs iv as y m e gus tó el juego que hic is te c o n la referenc ia.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - E uge nio M a r ia d e H o s to s

Etiquetas: cadena dinam icam ente m ultidim ensional

¿Tienes una mejor respuesta a este tema? ¿Quiéres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

A te n ció n : E s tá s le ye n d o u n te m a q u e n o tie n e a ctivid a d d e s d e h a ce m á s


d e 6 M E S E S , te r e co m e n d a m o s a b r ir u n N u e vo te m a e n lu g a r d e
r e s p o n d e r a l a ctu a l.

Este tema le ha gustado a 4 personas

« Tema Anterior | Próximo Tema »

La zona horaria es GMT -6. Ahora son las 16:36.

Contáctenos - Archivo - Política de Privacidad - Políticas de uso - Arriba

converted by W eb2PDFConvert.com

También podría gustarte