Más que una cuestión concreta es un asunto de algoritmia, lo que implica que puede tener varias soluciones satisfactorias.
A ver si te he entendido bien: imaginemos que tenemos una foto, una caja de texto y un párrafo en una página y que según un criterio, yo pueda colocar primero el párrafo, después la imagen y por último la caja de texto, por ejemplo, o cualquiera de las combinaciones posibles.
Si es así, se me ocurre de primera utilizar una matriz de orden 1 o vector para almacenar el código HTML de cada "objeto".
Por ejemplo:
$etiquetas[0]="<img src='foto.jpg' width='320' height='200' border='0'>\n";
$etiquetas[1]="<input type='text' name='TEXTO' size='20'>\n";
$etiquetas[2]="<p align='left'>Esto es un párrafo</p>\n";
Y para cargar la página sería:
<html>
<body>
<form>
<?php
for($c=0;$c<sizeOf($etiquetas);$c++)
{
echo($etiquetas($c));
}
?>
</form>
</body>
</html>
Para alterar el orden de aparición tan sólo deberías modificar los índices de cada uno de los elementos de la matriz(imagino que sabrás defenderte con éso), e incluso podrías obviar cualqueira de ellos. Ya sólo deberías agregar las condiciones que tú consideres oportunas.
Un saludo.