За последние 24 часа нас посетили 62072 программиста и 1740 роботов. Сейчас ищет 851 программист ...

Создание массивов циклом

Тема в разделе "PHP для новичков", создана пользователем Zerox, 28 апр 2012.

  1. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    Добрый день. Появилась такая проблема:
    вывожу телепрограмму блоками по телеканалам.
    Создается массив телеканалов а в каждом должен создаваться массив с его телепередачами.
    НО!
    У меня получается так, что с каждым новым телеканалом тот массив просто дополняется (не знаю как менять имя нового массива).
    Думал чистить массив. Unset() не помог.
    Какие есть еще варианты?
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    вариант один: научиться внятно формулировать вопрос. вот увидишь, когда вопрос хорошо поставлен, решение внезапно само находится.

    Добавлено спустя 5 минут 29 секунд:
    если я правильно интерпретирую это г*, нужен двумерный массив. PHP отлично справляется вот с такой вещью:
    Код (PHP):
    1. $channel[] = $next_shit; // здесь одномерный массив
    2. $whole_peace_of_shit[] = $channel; // здесь уже двумерный массив 
    или

    Код (PHP):
    1. $channel0 = $channel1 = $channel2 = array(); 
    2. $channels = array(&$channel0, &$channel1, &$channel2);
    3. $channel[0][] = 'shit';
    4. echo $channel0[0]; // выведет 'shit' — магия!  
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    надо просто сначала забивать массив программ, потом добавлять его в массив каналов.
     
  4. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    В общем суть:
    Код (Text):
    1.  
    2. $query = "SELECT * FROM `channels`";
    3. $sql = mysql_query($query) or die(mysql_error());
    4. while ($row = mysql_fetch_assoc($sql)) {
    5.       $rel[] = $row;
    6.         $query2 = "SELECT * FROM `tvprog` WHERE `channel` = '".$channel_name."' AND `date`='".date("Y-m-d")."' ORDER BY `Id`";
    7.         $sql2 = mysql_query($query2) or die(mysql_error());
    8.         while ($row2 = mysql_fetch_assoc($sql2)) {         
    9.             $rel2[] = $row2;
    10.     }
    11. }
    Отсюда массив $rel2[] (массив телепередач) с каждым новым телеканалом просто дополняется, а мне надо, чтобы на каждом новом телеканале был свой массив телепередач.
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. ${$rel.$id}[] 
    Если не поймешь, не делай =))

    Я как то было дело, тоже хотелось разных массивов =)
     
  6. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    спасибо, сработало
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тип того
    Код (PHP):
    1. $query = "SELECT * FROM `channels`";
    2. $sql = mysql_query($query) or die(mysql_error());
    3. $array = aray();
    4.  
    5. while ($row = mysql_fetch_assoc($sql)) {
    6.   $tvprog=array();
    7.   $query2 = "SELECT * FROM `tvprog` WHERE `channel` = '" . $channel_name . "' AND `date`='" . date("Y-m-d") . "' ORDER BY `Id`";
    8.   $sql2 = mysql_query($query2) or die(mysql_error());
    9.   while ($row2 = mysql_fetch_assoc($sql2)) {
    10.     $tvprog[] = $row2;
    11.   }
    12.   $array[$channel_name]=$tvprog;
    13. }
    14.  
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. $array[0]=1;
    2.  
    3. function new_array($name_array,$key)
    4. {global ${$name_array};
    5.     return ${$name_array}[$key];
    6. }
    7.  
    8. echo new_array('array',0); 
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    что ты изобретаешь? о_О зачем это?
     
  10. Zerox

    Zerox Активный пользователь

    С нами с:
    18 янв 2010
    Сообщения:
    123
    Симпатии:
    0
    велосипед однако :З

    Добавлено спустя 45 секунд:
    все ребят, спасибо.
    сработал вариант Your.
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Велик...
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    беда. позор вам. вложенные циклы делаются через вложенные циклы, а не через какую-то херобратию =(