Вопрос (foreach)?

tashkentchi

Новичок
PHP:
array( 'Иванов', 'Петров', 'Сидоров' )
и
PHP:
array( "'Иванов', 'Петров', 'Сидоров'" )
это разные массивы
 

Serguitar

Новичок->продвинутый
tashkentchi
Читай предыдущий топ. Массивы, имхо, тут вообще не нужны.
Я делал подобное, когда мне нужно было сделать рекурсивный вывод данных из базы и привязать их к функции Яваскрипта, со слоями и вложнностями. Слой я завершал именно тогда. когда вложенность в базе менялась на меньшую. А значение вложенности я заоминал по принципу, описанному выше.
 

nirex

Новичок
$a[$schetchik]["surname"]="Иванов";
$a[$schetchik]["id"]=1023;
// следующий
$a[$schetchik]["surname"]="Петров";
$a[$schetchik]["id"]=4078;
// и т.д.

Reset($a);
foreach ($a as $k=>$v) {

if(substr($a[$k]["surname"],0,1)!==substr($a[$k+1]["surname"],0,1))$a[$k]["surname"].='<br />';

$disp.= "<a href=\"show_contact.php?id=$a[$k][\"id\"]\" class='a0'><font color='#122d3c'>$a[$k][\"surname\"]</font></a><br> ";

}

вообщем помоему так надо , если я правильно понял , это правильно в том случае ,если твоя база например текстовая , иначе читай как правильно написать запрос к тому или иному серверу базы данных.
пример к mysql
$query="select * from `my_table` order by `surname` asc";

а дальше циклом выводишь данные и смотришь свое условие .
 

Alex2003

Новичок
Ахтунг :)

PHP:
$a='';
$line='';

while($row=mysql....){
  $line .= $row['name'];
  if($row['name']{0}!=$a) 
    $line .='<br />';

  $a=$row['name']{0};
}
так бут работать?
 

Serguitar

Новичок->продвинутый
Alex2003
Переписал моё решение готовым кодом? Зачем? Ты думаешь, он бы сам не смог?
 

Alex2003

Новичок
а ты думаешь сутки на эту задачу - не жестоко? если он смог, то уже давно... ИМХО.
 

_Михаил_

Новичок
по последнему варианту: чего-то подобного я уже добивался.
<br> должны ставится на строчку раньше, и потом, среди них встречаются не логичные.
 

_Михаил_

Новичок
В моем случае, используя последний напутствующий вариант, в некоторых местах вставляются ненужные бр, а все остальные должны ставится на позицию выше.
 

_Михаил_

Новичок
В двух случаях бр ставится в середине списка на одну букву.
Но ни это главное, а то, что остальные бр должны ставится на строчку ранее.
 

Serguitar

Новичок->продвинутый
О, господи!
Так ты просто скопировал тот код, который тебе дали? Ты понимаешь, что он выполняет? И где вставляется бр? И как сделать так, что бр вставлялся на строчку ранее?
 

_Михаил_

Новичок
Все, заработало, всем спасибо. Работает по схеме последнего разжеванного варианта.
 

_Михаил_

Новичок
Что не люблю на форумах, так это то, что человеку который занимается чем либо всего пару месяцев, легких ответов ждать не приходится. Решение простое, а конкретного мало кто предлагает. А вот то что у меня получилось: :))

while ($row = mysql_fetch_array($result)) {
$id = $row['id'];
$fio = $row['fio'];

if($row['fio']{0}!=$a)
$display_block.='<br />';
$display_block .= " <a href=\"show_contact.php?id=$id\" class='m8'>$fio</a>$fuck<br> ";
$a=$row['fio']{0};

++$i; }

-~{}~ 10.06.05 15:30:

++$i; - это немного от другого
 

Serguitar

Новичок->продвинутый
_Михаил_
Всё-таки криво. Всё, что нужно было переделать в данном тебе коде, это поставить проверку условия смены первой буквы в самое начало цикла. И всё.
Что не люблю на форумах, так это то, что человеку который занимается чем либо всего пару месяцев, легких ответов ждать не приходится.
А чего ты хотел? Только так и можно чему-то научиться.
А решение и вправду простое. Надо всего лищь шевельнуть могзгами. Этому тебя и учат. А с готовым кодом ты не научишься решать свои проблемы.
 
Сверху