Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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
¿Tienes una mejor respuesta a este tema? ¿Quiéres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate
converted by W eb2PDFConvert.com