Foros del Web » Programando para Internet » PHP »

Falla en ejemplo de manual de php - array values

Estas en el tema de Falla en ejemplo de manual de php - array values en el foro de PHP en Foros del Web. Hola a todos, es referente a que existe un ejemplo en el manual de php, especificamente en el tema: array_values (http://cl.php.net/manual/es/function.array-values.php) @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código php: ...
  #1 (permalink)  
Antiguo 19/11/2008, 14:24
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 9 meses
Puntos: 2
Pregunta Falla en ejemplo de manual de php - array values

Hola a todos,
es referente a que existe un ejemplo en el manual de php, especificamente en el tema:
array_values (http://cl.php.net/manual/es/function.array-values.php)

Código php:
Ver original
  1. <!-- <?php
  2. $array=array( 'value1'=>'value',
  3.               'array1'=> array( 'subItem1'=>'subItem1',    
  4.                                 'subItem2'=>'subItem2' ),
  5.               'array2'=> array( 'subItem1'=>'subItem1' )
  6.             );
  7.            
  8. $newArray=array();
  9. array_flatten($array,$newArray);
  10. print_r( $newArray );
  11.  
  12. function array_flatten($array, &$newArray = Array() ,$prefix='',$delimiter='|') //line12
  13. {
  14.   foreach ($array as $key => $child)
  15.   {
  16.     if (is_array($child))
  17.     {
  18.       $newPrefix = $prefix.$key.$delimiter;
  19.       $newArray =& array_flatten($child, $newArray ,$newPrefix, $delimiter);
  20.     }else
  21.     {
  22.       $newArray[$prefix.$key] = $child;
  23.     }
  24.   }
  25.   return $newArray;
  26. }
  27. ?>-->

según este manual el output seria:
//Output Array
//(
// [value1] => value
// [array1|subItem1] => subItem1
// [array1|subItem2] => subItem2
// [array2|subItem1] => subItem1
//)
//recursively reduces deep arrays to single-dimensional arrays

pero que raro a me genera este error:
Parse error: syntax error, unexpected '=', expecting ')' in /data/members/free/tripod/es/h/o/b/hoberwilly/htdocs/prueba.php on line 12
  #2 (permalink)  
Antiguo 19/11/2008, 14:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Falla en ejemplo de manual de php - array values

Prueba ponerlo asi: &$newArray = array().

Saludos
  #3 (permalink)  
Antiguo 19/11/2008, 14:33
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Falla en ejemplo de manual de php - array values

Gracias antetodo GatorV por tu ayuda, según lo indicado modifique en la linea 8:
&$newArray=array();

y me sale el sgte. error:
Parse error: syntax error, unexpected '&' in /data/members/free/tripod/es/h/o/b/hoberwilly/htdocs/prueba.php on line 8
  #4 (permalink)  
Antiguo 19/11/2008, 14:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Falla en ejemplo de manual de php - array values

Mmmm en ese caso cambia la función así:
Código php:
Ver original
  1. function array_flatten($array, &$newArray, $prefix='',$delimiter='|') //line12
  2. {
  3.   foreach ($array as $key => $child)
  4.   {
  5.     if (is_array($child))
  6.     {
  7.       $newPrefix = $prefix.$key.$delimiter;
  8.       $newArray =& array_flatten($child, $newArray ,$newPrefix, $delimiter);
  9.     }else
  10.     {
  11.       $newArray[$prefix.$key] = $child;
  12.     }
  13.   }
  14.   return $newArray;
  15. }

Saludos
  #5 (permalink)  
Antiguo 19/11/2008, 14:54
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Falla en ejemplo de manual de php - array values

Bien tonces se modificaron:
1. $newArray = array(); //linea 8
2. function array_flatten($array, &$newArray ,$prefix='',$delimiter='|') //linea 12

y este es el resultado:
Array ( [value1] => value [array1|subItem1] => subItem1 [array1|subItem2] => subItem2 [array2|subItem1] => subItem1 )
Muchisimas gracias GatorV.
  #6 (permalink)  
Antiguo 19/11/2008, 15:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
GatorV por favor si me podrias seguir ayudando con respecto a:
1. Segun lo trabajado lineas arriba (modifique el array) y queda así:
Código php:
Ver original
  1. <?php
  2. $array=array( 'array1'=> array( 'id'=>'03502',    
  3.                                 'cantidad'=>'20' ),
  4.               'array2'=> array( 'id'=>'04900',
  5.                     'cantidad'=>'40' )
  6.             );
  7.            
  8. $newArray=array();
  9. array_flatten($array,$newArray);
  10. print_r( $newArray );
  11.  
  12. function array_flatten($array, &$newArray ,$prefix='',$delimiter='|')
  13. {
  14.   foreach ($array as $key => $child)
  15.   {
  16.     if (is_array($child))
  17.     {
  18.       $newPrefix = $prefix.$key.$delimiter;
  19.       $newArray =& array_flatten($child, $newArray ,$newPrefix, $delimiter);
  20.     }else
  21.     {
  22.       $newArray[$prefix.$key] = $child;
  23.     }
  24.   }
  25.   return $newArray;
  26. }
  27. ?>

2. dando como resultado esto:
Array ( [array1|id] => 03502 [array1|cantidad] => 20 [array2|id] => 04900 [array2|cantidad] => 40 )
hasta alli exelente,
...pero ahora se tiene la necesidad de extraer el [array1|cantidad] => 20

Por favor si me podrias ayudar, gracias

Pues extraelo usando echo $array['array1|cantidad'].

Saludos

Última edición por GatorV; 19/11/2008 a las 17:02
  #7 (permalink)  
Antiguo 19/11/2008, 16:01
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Falla en ejemplo de manual de php - array values

Excelente GatorV, bien espero sea la ultima consulta con respecto al array.

El array original que tengo es de la sgte forma:
Código php:
Ver original
  1. <!--
  2. Array ( [06d84b98e0d1df882dc302c03a209707] => Array ( [id] => 03502
  3.                                                                                               [cantidad] => 20
  4.                                                                                             )
  5.             [d94e65339cd57888888dfadfad888dfa] => Array ( [id] => 04900
  6.                                                                                              [cantidad] => 40
  7.                                                                                             )
  8.          )
  9. -->
Estas claves como por ejemplo (06d84b98e0d1df882dc302c03a209707) fueron generados a que en principio fueron cifrados con md5...ahora lo sugerido en el ultimo post la solucion lo estoy manejando de esta manera:
Código php:
Ver original
  1. <?php echo $newArray['06d84b98e0d1df882dc302c03a209707|cantidad']; ?>
pero en este ultimo echo estoy en lo correcto??????? por favor espero tus sugerencias ...gracias
  #8 (permalink)  
Antiguo 19/11/2008, 16:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Falla en ejemplo de manual de php - array values

Asi es estas en lo correcto si es que ese es el nombre de la llave.

Saludos.
  #9 (permalink)  
Antiguo 19/11/2008, 16:36
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Falla en ejemplo de manual de php - array values

Y no habra quizas otra forma de implementar el echo, disculpa la ignorancia quizas por lo que te voy a decir pero bueno...es que estoy escribiendole una de las claves cifradas en la pagina php???????
  #10 (permalink)  
Antiguo 19/11/2008, 17:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Falla en ejemplo de manual de php - array values

No entiendo a que te refieres.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:57.