Войти

Показать полную графическую версию : array()


slaine
05-09-2005, 13:02
Пожалуста помогите прочитать этот массив.
Я только смого добиться вывода 'OIL' и 'SPARK', а ветку 'SPARK PLUGS' не
могу вывести.
<?

$products=array(
array('code' =>'oil','desc' =>'oil'),

array('code' =>'spk', 'desc' =>'spark', 'products' => array(array('code' =>'spk','desc' =>'spark plugs')))

);



echo "<ul>";
for($i = 0; $i < count($products); $i ++){
echo "<LI>".$products[$i]['desc']."</LI>";
}
echo "</ul>";

?>

Vlad Drakula
05-09-2005, 13:23
slaine
а что ты сделать в результате хочешь?
построить дерево?

slaine
05-09-2005, 13:31
а что ты сделать в результате хочешь?
построить дерево?
Да-да, хочу научиться строить деревья.
И этот пример видел где-то в сети.

Vlad Drakula
05-09-2005, 14:03
slaine
вы знакомы с методами рекурсии?

slaine
05-09-2005, 14:23
нет, незнаком.

Vlad Drakula
05-09-2005, 14:37
slaine
вот есть такая конструкция:

function a (i)
{
if(i<0)
return;

print i;
function a (i-1);
}

a (10);

вам понятно как и что она делает?

slaine
05-09-2005, 18:12
Значит функция будет читать i пока i не достигнет нуля?
И тогда в моём случае она должна выводить массив пока он не закончится.
Как тогда мне это записать?

function a ($products)
{
if(empty($products))
return;

echo "<ul>";
for($i = 0; $i < count($products); $i ++){
echo "<LI>".$products[$i]['desc']."</LI>";
}
echo "</ul>";
a($products???);
}
a($products);

Vlad Drakula
05-09-2005, 19:08
slaine
не совсем!

function a ($products)
{
if(empty($products))
return;

echo "<ul>";
foreach($products as $p)
{
echo "<LI>".(typeof($p)=='array'?a($p):$p)."</LI>";
}
echo "</ul>";
}

slaine
06-09-2005, 13:40
А, что за функция typeof()? я её нигде ненашёл.

Vlad Drakula
06-09-2005, 16:11
slaine
функция которая определяет тип переменной...
возможно я ошибся с ее названием...

Prisoner
06-09-2005, 18:37
gettype (http://php.rinet.ru/manual/ru/function.gettype.php)




© OSzone.net 2001-2012