Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/07/2012, 01:52
rbczgz
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Dividir array en grupos determinando el tamaño de los mismos por una varia

Cita:
Iniciado por cluster28 Ver Mensaje
Para empezar puedes hacer un foreach en lugar de dos:

Código PHP:
foreach ($arrayprincipal as $indice => $array_datos) {
        
//Puedes acceder al dato así
        
$dato$array_datos["dato"];

Entiendo que quieres dividir el contenido de $dato, por ejemplo en un valor de cómo máximo 15 caracteres?

Puede hacerlo así:

Código PHP:
$tamanio 15;

while(
strlen($dato) > 0)
{
     
$array_dos[] = substr($dato0$tamanio);

Te quedaría $array_dos con $dato "troceado"
Gracias por tu respuesta @cluster28,

Está genial lo de hacer un foreach en lugar de dos, el problema está en la segunda parte, no me he explicado bien. Lo que necesito no es dividir un string en trozos más pequeños, es dividir el array, o sea, si el array tiene 200 elementos, generar, por decir un ejemplo, 10 arrays de 20 elementos.

Esto no es del todo así porque el tamaño del array varía y el tamaño y la cantidad de las divisiones también, por eso es que lo hago todo con variables, en cada momento las variables toman el valor con el que se debe manejar este array para después actualizar cada división en la BD.

A ver si soy capaz de poner un ejemplo de lo que necesito:

1.- Por un lado tengo un array bidimensional ($array) obtenido de una BD con un dato por cada registro, ese dato lo tengo que actualizar dinámicamente.

2.- Por otro lado tengo una variable ($variable1) que me dice en cuantas partes necesito dividir ese array. ($variable1 = un campo de un registro de una tabla de la BD, específico para guardar ese dato para el siguiente uso)

3.- Por otro, tengo otra variable ($variable2) que me dice de qué cantidad de elementos deben ser las divisiones.

4.- Y por último tengo array2 con los valores para actualizar.

Lo que debe hacer el código que tengo que crear:

Divide $array en $variable1 partes con $variable2 elementos en cada parte:

- La primera parte, cambia el dato por $array2[0]
- La segunda parte, cambia el dato por $array2[1]
- La tercera parte cambia el dato por $array2[2]
- .....
- continua hasta $variable1

Finaliza y actualiza el valor de $variable1 con el nuevo valor.

Creo que no me dejo nada, el problema es que no puedo poner todo el código aquí porque no cabe y concretamente de este script lo único que he sido capaz de hacer, son las operaciones matemáticas necesarias, en el resto estoy perdido por completo.

Espero que alguien me pueda ayudar. Muchas gracias por anticipado y gracias a @mogurbon y a @cluster28 por sus ayudas.

.