(.)(.) Сиськеее...
С нами с 20.05.03
Сообщения: 2598
Рейтинг: 2651
|
Добавлено: 12/05/12 в 20:44 |
Есть несколько записей в мускле. У каждой записи есть ID который при создании новой строки автоматом назначается по порядку. Все бы хорошо, но некоторые строки были удалены и соответственно ID-шники уже идут не по порядку, а с пропусками.
Все эти записи пишутся в многоуровневый массив.
Задача: вывести из этого массива все данные построчно.
Делал циклом с помощью "for", но из-за пробелов в ID-шниках выходит шняга...
В инете ничего подходящего не нашел...
|
|
|
|
С нами с 06.05.03
Сообщения: 582
Рейтинг: 301
|
Добавлено: 12/05/12 в 21:04 |
|
|
|
|
💀💀💀
С нами с 31.05.10
Сообщения: 4689
Рейтинг: 728
|
Добавлено: 12/05/12 в 21:22 |
если на пыхе скрипт, то гугли циклы foreach.
примерно это будет выглядеть так (рекурсивный метод вывода многоуровневого массива):
Код: [развернуть] | function display_arr($arr, $pid)
{
$html = '';
foreach ($arr as $row)
{
if ($row['pid'] == $pid)
{
$html .= '<li>' . "\n";
$html .= ' ' . $row['name'] . "\n";
$html .= ' ' . display_arr($arr, $row['id']);
$html .= '</li>' . "\n";
}
}
return $html ? '<ul>' . $html . '</ul>' . "<br />\n" : '';
}
$arr = array(
array('name' => 'Каталог', 'id' => 1, 'pid' => 0),
array('name' => 'Главная', 'id' => 2, 'pid' => 1),
array('name' => 'Резерв1', 'id' => 3, 'pid' => 1),
array('name' => 'Резерв2', 'id' => 4, 'pid' => 1),
array('name' => 'Товар', 'id' => 5, 'pid' => 0),
array('name' => 'Резерв1', 'id' => 6, 'pid' => 5),
array('name' => 'Резерв2', 'id' => 7, 'pid' => 5),
array('name' => 'Резерв3', 'id' => 8, 'pid' => 5),
array('name' => 'Уровень 3', 'id' => 9, 'pid' => 0),
array('name' => 'Уровень 3.1', 'id' => 10, 'pid' => 8),
array('name' => 'Уровень 3.2', 'id' => 11, 'pid' => 8),
array('name' => 'Уровень 3.3', 'id' => 12, 'pid' => 8),
);
echo display_arr($arr, 0); |
|
|
|
|
(.)(.) Сиськеее...
С нами с 20.05.03
Сообщения: 2598
Рейтинг: 2651
|
Добавлено: 12/05/12 в 22:48 |
Хыхы. Ребят, спасибо, но в этой функции я так и не разобрался, за-то решил вопрос немного по другому.
Все равно, всем спасибо за совет! Оценил.
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 13/05/12 в 00:01 |
Что то вы через задницу решили решать. Если данные в базе, в чем проблема их оттуда после запроса сразу и выводить ?
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
8
|
|
|
(.)(.) Сиськеее...
С нами с 20.05.03
Сообщения: 2598
Рейтинг: 2651
|
Добавлено: 13/05/12 в 00:11 |
Stek: Скрипт не мой. У меня есть только массив. Лезть лишний раз с запросами в БД не очень хочется.
|
|
|
|
С нами с 03.02.11
Сообщения: 842
Рейтинг: 301
|
Добавлено: 13/05/12 в 09:20 |
Project писал: | Хыхы. Ребят, спасибо, но в этой функции я так и не разобрался, за-то решил вопрос немного по другому.
Все равно, всем спасибо за совет! Оценил. |
а что там разбираться?
foreach проходит по всем элементам массива, даже, как ты сказал "многоуровневого" - многомерного.
Код: [развернуть] | $arr = array(1, 'hardcore', 'teen');
$arr = array(3, 'blowjob', 'mature');
foreach($arr as $key=>$val) {
echo $key; //в 1-ю итерацию выведет 0, во 2-ю 1
//$key - ключ, если нужен. если не нужен - то просто ($arr as $val)
echo $val[0]; //в 1-ю итерацию выведет 1, во 2-ю 3
echo $val[1]; //в 1-ю итерацию выведет 'hardcore', во 2-ю 'blowjob'
echo $val[2]; //в 1-ю итерацию выведет 'teen', во 2-ю 'mature'
}
|
for each - для каждого. то есть, функция будет перебирать массив и возвращать каждый его элемент в $val, пока не будет достигнут конец массива.
|
|
|
|