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.

Ordenar array según patrón (PHP)
Comenzado por
andresdz
, ago 13 2011 11:34
3 respuestas en este tema
#1
Escrito 13 agosto 2011 - 11:34
#2
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 />';
}
<?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 />';
}
#3
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...
$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...
#4
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
dato1, dato3, dato2, dato0, dato4
$patron = array(1, 3, 2, 0, 4);
Tu respuesta da:
dato2 dato3 dato4 dato0 dato1