Position / Order div с php - PullRequest
       22

Position / Order div с php

0 голосов
/ 19 сентября 2011

Я ищу перестановку позиции div с помощью php

Моя HTML-структура выглядит примерно так

<div id="position">1,2,3,4,5</div>

    <div id="1">1</div>
    <div id="2">2</div>
    <div id="3">3</div>
    <div id="4">4</div>
    <div id="5">5</div>

Выше,

'<div id="position"><php $layout ?></div>'

определяет

<div id="position">1,2,3,4,5</div>

То, что я хочу, это если

<div id="position">5,2,3,1,4</div>

Упорядочить div в относительном порядке следующим образом

<div id="5">5</div>
<div id="2">2</div>
<div id="3">3</div>
<div id="1">1</div>
<div id="4">4</div>

В основном я ищу сортировку по идентификатору div в массиве.

Спасибо

Ответы [ 3 ]

1 голос
/ 19 сентября 2011

Вы можете сделать что-то вроде:

$numbers = "5,2,3,1,4";
$order = explode(',',$numbers);
foreach ($order as $i){
    echo "<div id=\"$i\">$i</div>";
}
1 голос
/ 19 сентября 2011

Ваш вопрос очень неясен, потому что вы не указали, как требуемый заказ попадает в вашу программу.

Но в основном у вас есть два варианта (которые могут быть объединены).В любом случае вы храните свои идентификаторы в массиве PHP и либо:

  • используйте 'usort' с пользовательской функцией заказа, которая получает заказ откуда-либо, либо
  • использует явные ключив вашем массиве и сортируйте по ключу, используя 'ksort'. #
0 голосов
/ 19 сентября 2011

PHP На самом деле ничего не проектирует и не форматирует визуально. Это просто язык для обработки и вывода необходимых данных.

Для вашего решения вам может понадобиться это, но это действительно зависит от вашей ситуации - может быть, вы могли бы подробнее уточнить?

$divs = array(1,2,3,4,5);

// Here you could reverse them by $divs = array_reverse($divs); if needed.

foreach($divs as $div)
   echo '<div id="'.$div.'">'.$div.'</div>';

Если вы настаиваете на использовании внутреннего содержимого первого div для сортировки остальных (я не уверен, почему?) - вы можете использовать что-то вроде jQuery, чтобы сделать это на стороне клиента.

Шай.

...