Ir al contenido


Foto

Ordenar array según patrón (PHP)


  • Por favor identifícate para responder
3 respuestas en este tema

#1 andresdz

andresdz

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 13 agosto 2011 - 11:34

Que tal gente, tengo una duda tal vez tonta que me tiene dando vueltas y quiero sacarmela de encima. Tengo estos 2 arrays que pueden tener x número de elementos y distinto contenido con el número al final:

$lineas = array('dato0','dato2','dato4','dato3','dato1');
$patron = array(1, 3, 2, 0, 4);

Me gustaría imprimir los datos por ejemplo:

dato1
dato3
dato2
dato0
dato4

Usando un sólo bucle foreach y sin usar expresiones regulares.

Agradezco mucho su ayuda.


  • 0

#2 andresdz

andresdz

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 13 agosto 2011 - 12:58

Hasta el momento esta en mi solución, pero se ve limitada a PHP 5.2.0 +, saben una mejor manera de hacerlo?

<?php

$l = array('dato0','dato2','dato4','dato3','dato1');
$patron = array(1, 3, 2, 0, 4);
$l = array_combine(filter_var_array($l, FILTER_SANITIZE_NUMBER_INT), $l);

foreach ($patron as $p) {
    echo $l[$p] . '<br />';
}
  • 0

#3 cesar_cz

cesar_cz

    Advanced Member

  • Moderadores
  • PipPipPip
  • 919 mensajes
  • LocationChile

Escrito 13 agosto 2011 - 02:25

Hola Andres creo que así te podría resultar:

$l = array('dato0','dato2','dato4','dato3','dato1');
$patron = array(1, 3, 2, 0, 4);
for ($i=0;$i<sizeof($patron);$i++)
{
    echo $l[$patron[$i]];
}

saludos desde Santiago de Chile...

  • 0

#4 andresdz

andresdz

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 13 agosto 2011 - 03:24

Gracias por responder pero el resultado tiene que ser el mismo del patrón:

dato1, dato3, dato2, dato0, dato4

$patron = array(1, 3, 2, 0, 4);

Tu respuesta da:

dato2 dato3 dato4 dato0 dato1
  • 0




IP.Board spam blocked by CleanTalk.