Помогите пройтись по ассоциативному массиву в Smarty

-
На сайте с 07.12.2005
Offline
97
-K-
1233

Есть вот такой вот массив:


Array
(
[2] => Array
(
[id] => 2
[name] => Первый
[description] =>
[parent] => 0
[picture] =>
[itemthis] => 0
[itemall] => 11
[path] => 002
[level] => 1
)

[3] => Array
(
[id] => 3
[name] => Второй
[description] =>
[parent] => 2
[picture] =>
[itemthis] => 0
[itemall] => 0
[path] => 002003
[level] => 2
)

[5] => Array
(
[id] => 5
[name] => Третий
[description] =>
[parent] => 2
[picture] =>
[itemthis] => 7
[itemall] => 10
[path] => 002005
[level] => 2
)
)

Не могу пройтись по нему в смарти. Почему то не видит половины массива! Собственно интересует только level :)


{foreach from=$cats key=cid item=cat}
{$cat.level}
{/foreach}

Вот так он не выводится

horal
На сайте с 30.03.2004
Offline
86
#1

у тебя же массив массивов!

так не прокатит!



{foreach from=$cats key=cid item=cat}
{$cat.level}
{/foreach}

нужно что-то вроде:


{foreach from=$cats key=cid item=cat}
{foreach from=$cat key=_cid item=myItem}
{$myItem.level}
{/foreach}
Именное письмо от Деда Мороза! (http://www.imoroz.by) Скрипт скандинавского аукциона (http://www.antalika.com/auction/about) Купить интернет казино (http://www.antalika.com/casino/%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82-%D0%BA%D0%B0%D0%B7%D0%B8%D0%BD%D0%BE)
-
На сайте с 07.12.2005
Offline
97
-K-
#2

Да вот нифига :(

Вот такая вот конструкция в шаблоне:


{foreach key=key from=$categories item=cats}
{$key} : "
{foreach key=_key from=$cats item=cat}
{$_key} = {$cat};
{/foreach}"<br />
{/foreach}

Выводит:


0 : " 0 = 2; 1 = Первый; 2 = 11; 3 = 0; 4 = 0; 5 = 0; "
1 : " 0 = 3; 1 = Второй; 2 = 0; 3 = 0; 4 = 2; 5 = 1; "
2 : " 0 = 5; 1 = Третий; 2 = 10; 3 = 7; 4 = 2; 5 = 1; "

Т.е. почему то непонятным образом видит только 6 элементов массива, а еще 2 - как раз таки которые необходимы, их и нет ...

O
На сайте с 27.07.2005
Offline
49
#3


array(
'2' => array
(
'id' => '2',
'name' => 'Первый',
'description' =>'',
'parent' => '0',
'picture' =>'',
'itemthis' => '0',
'itemall' => '11',
'path' => '002',
'level' => '1'
),

'3' => array
(
'id' => '3',
'name' => 'Второй',
'description' => '',
'parent' => '2',
'picture' =>'',
'itemthis' => '0',
'itemall' => '0',
'path' => '002003',
'level' => '2'
),

'5' => array
(
'id' => '5',
'name' => 'Третий',
'description' =>'',
'parent' => '2',
'picture' => '',
'itemthis' => '7',
'itemall' => '10',
'path' => '002005',
'level' => '2'
)
)


{foreach name=outer item=contact from=$cat}
{foreach key=key item=item from=$cat}
{$key}: {$item}<br />
{/foreach}
<br />
{/foreach}

А если так?

WBR, oksale
-
На сайте с 07.12.2005
Offline
97
-K-
#4
oksale:


{foreach name=outer item=contact from=$cat}
{foreach key=key item=item from=$cat}
{$key}: {$item}<br />
{/foreach}
<br />
{/foreach}


А если так?

Если именно так, то выводит:


0: Array
1: Array
2: Array
0: Array
1: Array
2: Array
0: Array
1: Array
2: Array
0: Array
1: Array
2: Array
0: Array
1: Array
2: Array

А если


{foreach name=outer item=contact from=$cat}
{foreach key=key item=item from=$contact}
{$key}: {$item}<br />
{/foreach}
<br />
{/foreach}

То получится то же что и у меня до этого, только в столбик :) Выводит только с 0 по 5 элементы каждого массива

O
На сайте с 27.07.2005
Offline
49
#5

Массив именно такого вида как у меня?

Я у себя проверила - выводит все как надо:


id: 2
name: Первый
description:
parent: 0
picture:
itemthis: 0
itemall: 11
path: 002
level: 1

и т.д.

Приведу код полностью:

test.tpl


<html>
<head>
<title></title>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
{foreach name=outer item=contact from=$contacts}
{foreach key=key item=item from=$contact}
{$key}: {$item}<br />
{/foreach}
<br />
{/foreach}

</body>

</html>

test.php


<?
...
$smarty = new My_Smarty;

$arr = array(
'2' => array
(
'id' => '2',
'name' => 'Первый',
'description' =>'',
'parent' => '0',
'picture' =>'',
'itemthis' => '0',
'itemall' => '11',
'path' => '002',
'level' => '1'
),

'3' => array
(
'id' => '3',
'name' => 'Второй',
'description' => '',
'parent' => '2',
'picture' =>'',
'itemthis' => '0',
'itemall' => '0',
'path' => '002003',
'level' => '2'
),

'5' => array
(
'id' => 5,
'name' => Третий,
'description' =>'',
'parent' => '2',
'picture' => '',
'itemthis' => '7',
'itemall' => '10',
'path' => '002005',
'level' => '2'
)

);
$smarty->assign('contacts', $arr);

$smarty->display('test.tpl');
?>
qRoof
На сайте с 12.09.2006
Offline
6
#6

{foreach name=outer item=contact from=$contacts} 

{foreach key=k item=it from=$contact}
{foreach key=key item=item from=$contact}
{$key}: {$item}<br />
{/foreach}
<br />
{/foreach}
{/foreach}

Пробуй.

Америка, которую нам не показывают | JC | J. CMS
sun
На сайте с 22.10.2005
Offline
81
sun
#7

Не изобретайте велосипед

{section name=co loop=$contacts}

<tr>

<td><a href="view.php?id={$contacts[co].id}">view<a></td>

<td>{$contacts[co].name}</td>

<td>{$contacts[co].home}</td>

<td>{$contacts[co].cell}</td>

<td>{$contacts[co].email}</td>

<tr>

{/section}

http://smarty.php.net/manual/ru/language.function.section.php

devmen.com (http://devmen.com/)
-
На сайте с 07.12.2005
Offline
97
-K-
#8

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

Это были правки в чужом коде. В результате получилось что в дугом подключаемом файле, переменная с моим массивом переопределялась другой. :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий