Comunidad de diseño web y desarrollo en internet online

como paginar un array ?

Citar            
MensajeEscrito el 09 Mar 2011 02:59 pm
buenas alguien sabe como paginar este tipo de arrays?

$n1=trim($dat2[0]);
$n2=trim($dat2[1]);
$n3=trim($dat2[2]);
///////////////////
if(isset($clientes2[$n1]))
{
$clientes2[$n1] = array(
'n1' => $n1,
'n2' => $n2,
'n3' => $n3);
}
else
{
$clientes2[$n1] = array(
'n1' => $n1,
'n2' => $n2,
'n3' => $n3);
}

foreach($clientes2 as $ides =>$datos){

echo $datos['n1'].'<br>';

}

Por swingbeach21

Claber

104 de clabLevel



 

msie
Citar            
MensajeEscrito el 09 Mar 2011 03:13 pm
haber si te sirve este ejemplo

Código PHP :

<?php
//ejemplo de paginacion 
//tomamos un array

$array = array(
0 => array("nombre" => "pedro",
         "telefono"=> "202110"),
1 => array("nombre" => "juan",
         "telefono"=> "11111111"),
2 => array("nombre" => "jhon",
         "telefono"=> "33333332"),         
3 => array("nombre" => "oneyda",
         "telefono"=> "666666"),
4 => array("nombre" => "pedro",
         "telefono"=> "21345667"),
5 => array("nombre" => "pamela",
         "telefono"=> "99999"),         
6 => array("nombre" => "nicol",
         "telefono"=> "123567"),
);
$desde = 0;//mostramos desde la posicion x indicada
$cantidad = 3;//hasta un limite de y
//recorremos con un for el array convirtiendo esta en una clase con SPLFixedArray
foreach(new LimitIterator(SplFixedArray::fromArray($array),$desde,$cantidad) as $datos)
{
   echo $datos["nombre"];
   echo "\n";
}

y el resultado que arroja es este

Código :

pedro
juan
jhon

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 09 Mar 2011 05:47 pm
no hya otra forma con solo codigo o algun artificio?

Por swingbeach21

Claber

104 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Mar 2011 07:05 pm
mas facil que esa no e visto jejeje
el LimitIterator es como el limit del mysql
"SELECT * FROM tabla_articulo WHERE precio>10 LIMIT 0,10"

ahora lo del SplFixedArray::fromArray
es por que creaste un array con la forma array() que es disntinto de los arrays spl
lo cual el splfixedarray hace una conversion del array de php a un array optimizado para datos de gran magnitud el poder del LimitIterator es vista cuando se trabaja con ficheros svc ya que las spl tienen un manejador de archivos como SplFileObject con el cual se puede combinar con el LimitIterator

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 09 Mar 2011 08:12 pm
puedes publicar la clase SplFixedArray ?



Fatal error: Class 'SplFixedArray' not found in C:\AppServ\www\entrena\grilla\p.php on line 26

Por swingbeach21

Claber

104 de clabLevel



 

msie
Citar            
MensajeEscrito el 09 Mar 2011 09:28 pm
bueno he visto esto pero es vectorial y no matrcices , megustaria unjemplo con matrices esto esta mas simple pero no se que debo cmabiar alugine alguna pista?


http://www.cristalab.com/tutoriales/paginar-vector-de-resultados-con-php-c63553l/#ultimo

Por swingbeach21

Claber

104 de clabLevel



 

msie
Citar            
MensajeEscrito el 09 Mar 2011 09:31 pm
usa var_dump sobre los datos que queires pagianr por lo menos una parte a modo de ejemplo y segun aeso muestras el resultado qu quieres obtener

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 09 Mar 2011 09:47 pm
bueno solo quiero mostrar los nombres de tres en tres paginados aqui el array usando var_dump

array(5) { [1]=> array(3) { ["n1"]=> string(1) "1" ["n2"]=> string(3) "ana" ["n3"]=> string(2) "10" } [2]=> array(3) { ["n1"]=> string(1) "2" ["n2"]=> string(5) "maria" ["n3"]=> string(2) "20" } [3]=> array(3) { ["n1"]=> string(1) "3" ["n2"]=> string(4) "jose" ["n3"]=> string(2) "30" } [4]=> array(3) { ["n1"]=> string(1) "4" ["n2"]=> string(4) "luis" ["n3"]=> string(2) "40" } [5]=> array(3) { ["n1"]=> string(1) "5" ["n2"]=> string(5) "pedro" ["n3"]=> string(2) "50" } } array(5) { [1]=> array(3) { ["n1"]=> string(1) "1" ["n2"]=> string(3) "ana" ["n3"]=> string(2) "10" } [2]=> array(3) { ["n1"]=> string(1) "2" ["n2"]=> string(5) "maria" ["n3"]=> string(2) "20" } [3]=> array(3) { ["n1"]=> string(1) "3" ["n2"]=> string(4) "jose" ["n3"]=> string(2) "30" } [4]=> array(3) { ["n1"]=> string(1) "4" ["n2"]=> string(4) "luis" ["n3"]=> string(2) "40" } [5]=> array(3) { ["n1"]=> string(1) "5" ["n2"]=> string(5) "pedro" ["n3"]=> string(2) "50" } } array(5) { [1]=> array(3) { ["n1"]=> string(1) "1" ["n2"]=> string(3) "ana" ["n3"]=> string(2) "10" } [2]=> array(3) { ["n1"]=> string(1) "2" ["n2"]=> string(5) "maria" ["n3"]=> string(2) "20" } [3]=> array(3) { ["n1"]=> string(1) "3" ["n2"]=> string(4) "jose" ["n3"]=> string(2) "30" } [4]=> array(3) { ["n1"]=> string(1) "4" ["n2"]=> string(4) "luis" ["n3"]=> string(2) "40" } [5]=> array(3) { ["n1"]=> string(1) "5" ["n2"]=> string(5) "pedro" ["n3"]=> string(2) "50" } } array(5) { [1]=> array(3) { ["n1"]=> string(1) "1" ["n2"]=> string(3) "ana" ["n3"]=> string(2) "10" } [2]=> array(3) { ["n1"]=> string(1) "2" ["n2"]=> string(5) "maria" ["n3"]=> string(2) "20" } [3]=> array(3) { ["n1"]=> string(1) "3" ["n2"]=> string(4) "jose" ["n3"]=> string(2) "30" } [4]=> array(3) { ["n1"]=> string(1) "4" ["n2"]=> string(4) "luis" ["n3"]=> string(2) "40" } [5]=> array(3) { ["n1"]=> string(1) "5" ["n2"]=> string(5) "pedro" ["n3"]=> string(2) "50" } } array(5) { [1]=> array(3) { ["n1"]=> string(1) "1" ["n2"]=> string(3) "ana" ["n3"]=> string(2) "10" } [2]=> array(3) { ["n1"]=> string(1) "2" ["n2"]=> string(5) "maria" ["n3"]=> string(2) "20" } [3]=> array(3) { ["n1"]=> string(1) "3" ["n2"]=> string(4) "jose" ["n3"]=> string(2) "30" } [4]=> array(3) { ["n1"]=> string(1) "4" ["n2"]=> string(4) "luis" ["n3"]=> string(2) "40" } [5]=> array(3) { ["n1"]=> string(1) "5" ["n2"]=> string(5) "pedro" ["n3"]=> string(2) "50" }

Por swingbeach21

Claber

104 de clabLevel



 

msie
Citar            
MensajeEscrito el 10 Mar 2011 05:54 pm
bueno pro lo visto metiste el var_dump dentro de un bucle por que se repite 5 veces
la extructura de tu array seria asi

Código PHP :

$datos = array(
   0 => 
  array (
    'n1' => '1',
    'n2' => 'ana',
    'n3' => '10',
  ),
   1 => 
  array (
    'n1' => '2',
    'n2' => 'maria',
    'n3' => '20',
  ),
   2 => 
  array (
    'n1' => '3',
    'n2' => 'jose',
    'n3' => '30',
  ),
   3 => 
  array (
    'n1' => '4',
    'n2' => 'luis',
    'n3' => '40',
  ),
   4 => 
  array (
    'n1' => '5',
    'n2' => 'pedro',
    'n3' => '50',
  )
);
//para recorrer el array lo tendrias que hacer con un foreach
foreach($datos as $valor)
{
   echo $valor["n1"] . $valor["n2"] . "\n";
}

la salida que daria seria esta

Código :

ana
maria
jose
luis
pedro

ahora vamos a hacer lo mismo pero implementando clases
vamos a llenar los datos primero a modo de ejemplo
usando ArrayIterator esta en el CORE de php 5.0.0 y superiores
para mas info de la clase
http://es.php.net/manual/es/arrayiterator.construct.php

Código PHP :

$datos = new ArrayIterator();
$datos->append(array(
"n1"=> "1","n2"=> "ana" ,"n3"=> "10" 
));
$datos->append(array(
"n1"=> "2","n2"=> "maria" ,"n3"=> "20" 
));
$datos->append(array(
"n1"=> "3","n2"=> "jose" ,"n3"=> "30" 
));
$datos->append(array(
"n1"=> "4","n2"=> "luis" ,"n3"=> "40" 
));
$datos->append(array(
"n1"=> "5","n2"=> "pedro" ,"n3"=> "50" 
));

una vez llenado nuestros datos ahora lo paginamos de 3 en 3
lo que debemos obtener tiene que ser algo asi
del 0 al 2

Código :

ana
maria
jose

y del 3 al 6

Código :

luis
pedro


ahora ocupamos el LimitIterator

Código PHP :

foreach(new LimitIterator($datos,0,3) as $vector)
{
   echo $vector["n1"]. " - ".$vector["n2"]."\n";
}

y su salida es

Código :

1 - ana
2 - maria
3 - jose

ahora aplicando otro ejemplo

Código PHP :

//presta atencion en que es lo que cambio
foreach(new LimitIterator($datos,3,3) as $vector)
{
   echo $vector["n1"]. " - ".$vector["n2"]."\n";
}

su resultado

Código :

4 - luis
5 - pedro

ahora el ultimo ejemplo para dar un aspecto mas agradable en el terminal de php o el CLI-PHP

Código PHP :

foreach(new LimitIterator($datos,1,4) as $vector)
{
   echo $vector["n1"]. " - ". 
   str_pad($vector["n2"] , 20 ,"-",STR_PAD_LEFT).
   "\n";
}

resultado:

Código :

2 - ---------------maria
3 - ----------------jose
4 - ----------------luis
5 - ---------------pedro

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.