Foros del Web » Programando para Internet » PHP »

Cambiar inicio de Values en un Array por metodo POST

Estas en el tema de Cambiar inicio de Values en un Array por metodo POST en el foro de PHP en Foros del Web. He leído gran parte del manual de PHP, pero no he conseguido variar o modificar el valor de inicio secuencial de las Values de un ...
  #1 (permalink)  
Antiguo 01/02/2016, 01:25
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta Cambiar inicio de Values en un Array por metodo POST

He leído gran parte del manual de PHP, pero no he conseguido variar o modificar el valor de inicio secuencial de las Values de un Array.

Código PHP:
$map = ($_FILES["archivos"]["name"]);
print_r($map); 
Resultado:

Código PHP:
Array
(
    [
0] => Alejandro Gonzales Toro.png
    
[1] => Alvethe.png
    
[2] => Angelo.png
    
[3] => Call of Duty Black Ops 3.png
    
[4] => Cloudly Butera.png
    
[5] => Cristian Josue Pulido German.png
    
[6] => DaBurro.png
    
[7] => Dacksco.png

Desearía cambiar por un numero en especifico su comienzo de incremento.

Deseo
Código PHP:
Array
(
    [
1356] => Alejandro Gonzales Toro.png
    
[1357] => Alvethe.png
    
[1358] => Angelo.png
    
[1359] => Call of Duty Black Ops 3.png
    
[1360] => Cloudly Butera.png
    
[1361] => Cristian Josue Pulido German.png
    
[1362] => DaBurro.png
    
[1363] => Dacksco.png

¿Como podría efectuar este enumerado preciso desde un valor deseado?
  #2 (permalink)  
Antiguo 01/02/2016, 02:04
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar inicio de Values en un Array por metodo POST

Primero tienes que asignar esos valores a las posiciones que deseas de una forma similar a esta:
Código PHP:
Ver original
  1. $array[dimensión 1][dimensión 2][índice] = valor;

Luego, como habrán valores repetidos, los puedes eliminar utilizando la función array_unique(), pero como esta función se queda solo con las primeras apariciones de los valores repetidos, eliminando los añadidos después, primero tienes que invertir las posiciones a partir de los índices, para lo cual puedes usar la función krsort(). Una vez invertidas las posiciones y eliminado las repeticiones, solo tienes que reordenar las posiciones, para lo cual puedes utilizar la función ksort().

Un ejemplo:
Código PHP:
Ver original
  1. <?php
  2. $a = [
  3.     'b' => [
  4.         'c' => [
  5.             0 => 'foo',
  6.             1 => 'bar',
  7.             2 => 'bin',
  8.             3 => 'baz'
  9.         ]
  10.     ]
  11. ];
  12. print_r($a['b']['c']);
  13.  
  14. $a['b']['c'][1000] = 'foo'; //También puede ser $a['b']['c'][0]
  15. $a['b']['c'][1001] = 'bar';
  16. $a['b']['c'][1002] = 'bin';
  17. $a['b']['c'][1003] = 'baz';
  18. print_r($a['b']['c']);
  19.  
  20. krsort($a['b']['c']);
  21. print_r($a['b']['c']);
  22.  
  23. $a['b']['c'] = array_unique($a['b']['c']);
  24. print_r($a['b']['c']);
  25.  
  26. ksort($a['b']['c']);
  27. print_r($a['b']['c']);

Siendo el resultado lo siguiente:
Código HTML:
Ver original
  1. Array
  2. (
  3.     [0] => foo
  4.     [1] => bar
  5.     [2] => bin
  6.     [3] => baz
  7. )
  8. Array
  9. (
  10.     [0] => foo
  11.     [1] => bar
  12.     [2] => bin
  13.     [3] => baz
  14.     [1000] => foo
  15.     [1001] => bar
  16.     [1002] => bin
  17.     [1003] => baz
  18. )
  19. Array
  20. (
  21.     [1003] => baz
  22.     [1002] => bin
  23.     [1001] => bar
  24.     [1000] => foo
  25.     [3] => baz
  26.     [2] => bin
  27.     [1] => bar
  28.     [0] => foo
  29. )
  30. Array
  31. (
  32.     [1003] => baz
  33.     [1002] => bin
  34.     [1001] => bar
  35.     [1000] => foo
  36. )
  37. Array
  38. (
  39.     [1000] => foo
  40.     [1001] => bar
  41.     [1002] => bin
  42.     [1003] => baz
  43. )

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 01/02/2016 a las 02:11 Razón: Ejemplo
  #3 (permalink)  
Antiguo 01/02/2016, 12:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cambiar inicio de Values en un Array por metodo POST

Cita:
¿Como podría efectuar este enumerado preciso desde un valor deseado?
¿Y eso exactamente con qué propósito?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 01/02/2016, 17:34
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Cambiar inicio de Values en un Array por metodo POST

Es grandiosa tu respuesta, aunque necesitaba vincularlo con los archivos subidos por POST y con la opción multiple.

  #5 (permalink)  
Antiguo 01/02/2016, 17:40
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Pregunta Respuesta: Cambiar inicio de Values en un Array por metodo POST

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Y eso exactamente con qué propósito?
Es para hacer un if, si el archivo se ha subido mostrara su key, la cual es de mi preferencia e incrementable por archivo subido.

Conseguí una forma de vincularlos, pero no logro extraerlos o manipularlos junto con su Key en un Array:

Código PHP:
$tot count($_FILES["archivos1"]["name"]);

for(
$i 0$i $tot$i++)
{
    
$ia = array($WAR++ => $_FILES["archivos1"]["name"][$i]);

        
print_r($ia);

RESULTADOS
Array ( [99999716] => Alejandro Gonzales Toro.png ) Array ( [99999717] => Alvethe.png ) Array ( [99999718] => Angelo.png ) Array ( [99999719] => Call of Duty Black Ops 3.png ) Array ( [99999720] => Cloudly Butera.png ) Array ( [99999721] => Cristian Josue Pulido German.png )


Como ver los manipular los resultados en un array?, ya que solo se muestra uno, si el prinft esta fuera del for.

Código PHP:
print_r($ia); 
RESULTADO: Array ( [99999721] => Cristian Josue Pulido German.png)

Claramente se puede con Mysql, unicamente que estoy a un paso de conseguirlo con el for.

Última edición por leo_search1; 01/02/2016 a las 17:45
  #6 (permalink)  
Antiguo 01/02/2016, 17:59
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Busqueda Respuesta: Cambiar inicio de Values en un Array por metodo POST

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Y eso exactamente con qué propósito?
También he obtenido otra forma, aunque muy toscamente.

Duplicando el Input file con mismo name y subiendo los archivos solamente en el segundo input con valor especifico. Así que se toma el valor por key de inicio en incremento y como vacio el primero Input al enviar el form.

Código HTML:
<input type="file" multiple id="arc" name="archivos1[9999523]" /><br />
<input type="file" multiple id="arc" name="archivos1[]" /><br /> 
RESULTADO:

Array
(
[9999523] =>
[9999524] => Alejandro Gonzales Toro.png
[9999525] => Alvethe.png
[9999526] => Angelo.png
[9999527] => Call of Duty Black Ops 3.png
[9999528] => Cloudly Butera.png
[9999529] => Cristian Josue Pulido German.png
[9999530] => DaBurro.png

)

Aunque este no sería modificable desde un input text que es lo que necesito :
Código HTML:
<input type="text" Value="99999523" name="numero" /><br /> 

Última edición por leo_search1; 01/02/2016 a las 18:07
  #7 (permalink)  
Antiguo 01/02/2016, 18:08
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Cambiar inicio de Values en un Array por metodo POST

Cita:
Iniciado por leo_search1 Ver Mensaje
Es para hacer un if, si el archivo se ha subido mostrara su key, la cual es de mi preferencia e incrementable por archivo subido.

Conseguí una forma de vincularlos, pero no logro extraerlos o manipularlos junto con su Key en un Array:

Código PHP:
$tot count($_FILES["archivos1"]["name"]);

for(
$i 0$i $tot$i++)
{
    
$ia = array($WAR++ => $_FILES["archivos1"]["name"][$i]);

        
print_r($ia);

RESULTADOS
Array ( [99999716] => Alejandro Gonzales Toro.png ) Array ( [99999717] => Alvethe.png ) Array ( [99999718] => Angelo.png ) Array ( [99999719] => Call of Duty Black Ops 3.png ) Array ( [99999720] => Cloudly Butera.png ) Array ( [99999721] => Cristian Josue Pulido German.png )


Como manipular los resultados en un array?, ya que solo se muestra uno, si el prinft esta fuera del for.

Código PHP:
print_r($ia); 
RESULTADO: Array ( [99999721] => Cristian Josue Pulido German.png)

Claramente se puede con Mysql, unicamente que estoy a un paso de conseguirlo con el for.
  #8 (permalink)  
Antiguo 01/02/2016, 22:14
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar inicio de Values en un Array por metodo POST

Cita:
Iniciado por leo_search1 Ver Mensaje
Es grandiosa tu respuesta, aunque necesitaba vincularlo con los archivos subidos por POST y con la opción multiple.
Eso no cambia las cosas. Debes saber que tanto $_FILES, $_GET y $_POST son arrays asociativos, justo como en el ejemplo, por lo que puedes tratarlos de la misma forma, aunque no le encuentro mucho sentido al hecho de cambiar los índices. Si quieres asociar cada archivo a determinados datos, puedes hacerlo en el orden en el que los recibes, es decir, si tienes N datos llegados mediante el método POST, cada i-ésimo dato correspondería con cada i-ésimo archivo contenido en $_FILES.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 03/02/2016, 04:57
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Cambiar inicio de Values en un Array por metodo POST

Agregue un flip a los resultados y al llamarlos me dan el numero que les corresponde. .

[Alvethe.png] => 99999720
Precisamente comienzan desde ese numero y en incremento, pues no conozco otra forma :-/.

Etiquetas: arrays, aumentar, incrementar, post, secuencia, values
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 04:10.