Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Цикл foreach
 
 автор: [ANTI]CheateR   (16.11.2009 в 15:20)   письмо автору
 
 

Привет.

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

К примеру, кусок кода.

<?foreach($arResult["ITEMS"] as $cell=>$arElement):?>
<?
foreach($arElement["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
  <?=$arProperty["NAME"]?>:&nbsp;<?
    
if(is_array($arProperty["DISPLAY_VALUE"]))
        echo 
implode("&nbsp;/&nbsp;"$arProperty["DISPLAY_VALUE"]);
            else
                echo 
$arProperty["DISPLAY_VALUE"];?><br />
                    <?endforeach?>


Поправьте меня, пожалуйста, я где-то ошибаюсь, но не пойму где.

С помощью цикла foreach из текущего массива создается копия вложенного массива. Затем из вложенного массива с помощью этого цикла создается еще копия опять же вложенного массива.

но ведь есть способ без обхода массива, занести в нужный тебе массив вложенный массива какого-либо массива.

Как это можно сделать? То есть другими словами. Есть массив 1, в нем два вложенных массива 1.1 и 1.2

вот каким образом мне в массив 3 загнать массив 1.2

пробовал несколькими способами, не получилось - не буду уж их описывать, все равно не прокатили. Спасибо

  Ответить  
 
 автор: Гость   (16.11.2009 в 15:26)   письмо автору
 
   для: [ANTI]CheateR   (16.11.2009 в 15:20)
 

Не совсем понял что вам нужно, вы это хотели?

<?php

$array3 
$array['1']['2'];

  Ответить  
 
 автор: [ANTI]CheateR   (16.11.2009 в 15:44)   письмо автору
 
   для: Гость   (16.11.2009 в 15:26)
 

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

на том же примере покажу, может найдете ошибку.

<?foreach($arResult["ITEMS"] as $cell=>$arElement):?>
<?
foreach($arElement["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
  <?=$arProperty["NAME"]?>:


вот, все это дело по идее можно заменить на это


$my = $arResult["ITEMS"]["DISPLAY_PROPERTIES"];
print_r($my["NAME"]);


ну ведь должно работать? а ничего не выводит((

  Ответить  
 
 автор: Гость   (16.11.2009 в 16:29)   письмо автору
 
   для: [ANTI]CheateR   (16.11.2009 в 15:44)
 

Тфу не подумал, вам вот так нужно:
$my = $arResult["ITEMS"]["0"]["DISPLAY_PROPERTIES"];

вместо нуля - индекс, который нам отсюда не виден. Сделайте print_r ($arResult["ITEMS"]); и посмотрите что там за индексы. И что бы добраться до "NAME" нужно будет указать еще один подобный.

  Ответить  
 
 автор: sim5   (16.11.2009 в 15:30)   письмо автору
 
   для: [ANTI]CheateR   (16.11.2009 в 15:20)
 

array1 + array 2
array_push()
array_merge()
и т.п...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования