|
|
|
| Если в цикле получаю значения $row[id] и $row[par]
Надо создать массив вид $row[id]=>$row[par]
Чтоб потом можно было вывести все $row[id] и $row[par] | |
|
|
|
|
|
|
|
для: OLi
(09.07.2011 в 15:22)
| | А это часом не одномерный массив получается (если значения $row[id] уникальны)?
$arr[$row[id]] = $row[par];
| Если значений id - много и им соответствуют разные значения par, тогда двумерный массив можно сформировать так
$arr[$row[id]][] = $row[par];
|
| |
|
|
|
|
|
|
|
для: cheops
(09.07.2011 в 15:28)
| | А выводить как вместе с ключом? и делать проверку ключа? Отобразить и ключ и значение
Да- одномерный получается... | |
|
|
|
|
|
|
|
для: OLi
(09.07.2011 в 16:17)
| | Лучше всего воспользоваться foreach
<?php
foreach($arr as $id => $par)
{
echo "ключ - $id, значение - $par<br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(09.07.2011 в 16:28)
| | А если ко всему этому $arr[$row[id]] = $row[par]; надо еще добавить $row[name]?
Это уже двумерный будет, насколько я понял? | |
|
|
|
|
|
|
|
для: OLi
(09.07.2011 в 19:13)
| | Да, тогда лучше создавать двумерный массив
$arr[$row[id]]['par'] = $row['par'];
$arr[$row[id]]['name'] = $row['name'];
|
| |
|
|
|
|
|
|
|
для: cheops
(09.07.2011 в 19:18)
| | И как его просмотреть? чтоб сохранилось соответствие id name par | |
|
|
|
|
|
|
|
для: OLi
(09.07.2011 в 19:23)
| | Точно также, только теперь $par сам является массивом с элементами $par['par'] и $par['name']. | |
|
|
|
|
|
|
|
для: cheops
(09.07.2011 в 19:34)
| | Не могу представить...получается 2 foreach ? | |
|
|
|
|
|
|
|
для: OLi
(09.07.2011 в 19:39)
| | может обрисуете задачу более детально? покажите запрос и расскажите как и что нужно вывести, а то может и не нужны тут лишние телодвижения с массивом. | |
|
|
|
|
|
|
|
для: OLi
(09.07.2011 в 19:39)
| | Не обязательно, у вас же не очень много элементов, можно прямо так к ним обратиться по ключам
<?php
foreach($arr as $id => $par)
{
echo "ключ - $id, значение - $par[par], другое значение - $par[name]<br>";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(09.07.2011 в 19:45)
| | Что-то ничего не вывел:
while (($mn = $db->get_row($result)) > 0) {
$arr[$row[id]]['parentid'] = $row['parentid'];
$arr[$row[id]]['name'] = $row['name'];
}
foreach($arr as $id => $parentid)
{
echo "ключ - $id, значение - $par[par], другое значение - $par[name]<br>";
/* if ($_POST['cat'] == $mn['id']) {
$cat .= '<option selected="selected" value="'.$mn["id"].'">->'.htmlspecialchars($mn["name"]).'</option>';
} elseif($mn['parentid']==0) {
$cat .= '<option value="'.$mn["id"].'">'.htmlspecialchars($mn["name"]).'</option>';
}
*/
}
|
| |
|
|
|
|
|
|
|
для: OLi
(09.07.2011 в 23:28)
| | Опишу задачу - надо вывести все элементы массива (name) и при этом делать проверку на parentid>0 если да то выводить сразу name элементов где parentid=id
1 Т-е
2 Bus -->parentid 3
3 Auto
4 Keep
-----
Cписок должен преобразоваться в:
1 Т-е
2 Auto
- Bus
3 Keep
|
| |
|
|
|
|
|
|
|
для: OLi
(09.07.2011 в 23:28)
| | Так у вас в foreach $parentid, а не $par - где-то нужно изменить значение. | |
|
|
|
|
|
|
|
для: cheops
(10.07.2011 в 13:28)
| | Я ведь выше код написал... | |
|
|
|
|
|
|
|
для: OLi
(10.07.2011 в 14:04)
| | Ну... я про него и говорю - он написан неправильно, в цикле используется переменная с одним именем, а в выводе - с другим. | |
|
|
|
|
|
|
|
для: OLi
(10.07.2011 в 14:04)
| | и здесь ещё)
while (($mn = $db->get_row($result)) > 0) {
$arr[$row[id]]['parentid'] = $row['parentid'];
$arr[$row[id]]['name'] = $row['name'];
|
$row заменить на $mn
зы. и странное условие какоето в while вы получаете массив с данными и сравниваете его с числом.. | |
|
|
|
|
|
|
|
для: sl1p
(10.07.2011 в 15:27)
| | Сделал так:
foreach($arr as $id => $parentid)
{
if ($_POST['cat'] == $id) {
$cat .= '<option selected="selected" value="'.$id.'">->'.htmlspecialchars($parentid[name]).'</option>';
} elseif($parentid[parentid]==0) {
$cat .= '<option value="'.$id.'">'.htmlspecialchars($parentid[name]).'</option>';
}
}
|
Надо как-то проверить на $parentid[name]!==0 и выводить всех "детей" по ходу списка | |
|
|
|
|
|
|
|
для: OLi
(10.07.2011 в 15:43)
| | Тема закрыта - решение нашел | |
|
|
|