Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 12 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 09.08.2004
Откуда: TSC! Russia
как создать и заполнить двумерный массив в php поискал я по нету, чего-то нету такого :(
ps php изучаю уже целый второй час :)

_________________
Over's Beer Clan



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 13.11.2002
Откуда: msk.ru
alienfrom33
Cкачай документацию с оф. сайта - там все есть. Но навскидку:
Код:
$2d = array();
$2d[] = array(1,2,3,4,5);
echo $2d[0][4]; // выведет на экран: 5

_________________
Поддержка phpBB на русском языке - теперь официально!


 

Там создается массив одномерных массивов.
Выдержка из мануала:
Код:
$fruits = array (
   "fruits"  => array ("a"=>"orange", "b"=>"banana", "c"=>"apple"),
   "numbers" => array (1, 2, 3, 4, 5, 6),
   "holes"   => array ("first", 5 => "second", "third")
);

очень рекомендую скачать http://www.php.net/get/php_manual_chm_1 ... m/a/mirror (мануал по пхп с примерами). Сам пользуюсь, пока все что было нужно в нем находил


 

Цитата:
Там создается массив одномерных массивов

Где там?

Цитата:
$2d = array();

А тут, кстати, ошибочка - именна переменных не могут начится с числовых символов.


 

Member
Статус: Не в сети
Регистрация: 09.08.2004
Откуда: TSC! Russia
народ, а как мне этот массив вывести в таблицу?
Код:
for ($i=1; $i<=14;$i++){
            echo("<tr>");
              for($j=1;$j<=14;$j++){
                echo("<td>");
                 echo("each($d2[i][j])");
                  echo("</td>");
              }
echo("</tr>");}

заполняет таблицы занками [j]
в чем я накосячил? :?:

_________________
Over's Beer Clan


 

Во первых, когда нет необходимости, рекомендуется использовать апостров, то есть echo 'бла-бла-бла', а не echo "bla-blabla"
Во вторых функция each() сдесь не уместна
В третьих
Код:
$d2[i][j]
под i и j подразумеваются соответсвующие константы, а не переменные. Надо поставить знак доллора - $i $j
В четвёртых переменные не надо заключать в кавычки.
В пятых индексы массивов следует начинать с нуля а не с единицы.

Итого:
Код:
for ($i = 0; $i < 14; $i++)
{
   echo '<tr>';

   for ($j = 0; $j < 14; $j++)
   {
      echo '<td>';
      echo $d2[$i][$j];
      echo '</td>';
   }

   echo '</tr>';
}


Последний раз редактировалось PunBB 21.10.2004 22:52, всего редактировалось 2 раз(а).

 

Member
Статус: Не в сети
Регистрация: 09.08.2004
Откуда: TSC! Russia
PunBB
Цитата:
Надо поставить знак доллора - $i $j

здесь стормозил, переделал, теперь выводится значение J то есть [0] [1] и тд...
массив заполняю так
$d2 = array( );
$d2[0] = array(0.55,14.6,50,16,0,0,0,0,0,0,0,0,0,0,0);
$d2[1] = array(0.70,17.0,0,18,0,0,0,0,0,0,0,0,0,0,0);
$d2[2] = array(0.55,17.0,80,127,84,50,26,11,0,0,0,0,0,0,0);

_________________
Over's Beer Clan


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
рекомендуется использовать апостров,

Как раз таки и не рекомендуется. PHP имеет сишный синтаксис, а там все строки оформлятся через ".
И если ты сделаеш вот так , то не сработает вывод переменной, будет выведено $var1 , а не 45.
Код:
$var1=45;
echo 'Value =<b>$var1</b>';

а если вот так, то все будет нормально.
Код:
$var1=45;
echo "Value =<b>$var1</b>";



Хотя alienfrom33 рекомендую, для лучшей читабельности, переменные выносить из строки вот таким образом
Код:
$var1=45;
echo "Value =<b>".$var1."</b>";


 

Member
Статус: Не в сети
Регистрация: 09.08.2004
Откуда: TSC! Russia
Ray Adams
с апостррофами я разобрался еще в 2 ночи :)
а вот с нормальным выводом досих пор нет, в с++ такое бы точно работало, а как еще двумерный массив выводить можно? куда уж проще, только не пашет ведб как надо :(

_________________
Over's Beer Clan


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
попробуй такую функцтя print_r(имя массива) :)

Добавлено спустя 3 минуты, 56 секунд:
Вот тебе код , для вывода двухмерного массива
Код:
<?php
$r=array();
$r[0]=array("a1","a2","a3","a4","a5","a6");
$r[1]=array("b1","b2","b3","b4","b5","b6");
$r[2]=array("c1","c2","c3","c4","c5","c6");
echo "<table>";
for ($i=0;$i<count($r);$i++) {
    echo "<tr>";
    for ($j=0;$j<count($r[$i]);$j++) {
        echo "<td>".$r[$i][$j]."</td>";
    }
    echo "</tr>";
}
echo "</table>";
?>


 

PunBB
Цитата:
Где там?

В php.
Ray Adams
В php равно как и в perl используются и " и ' и ` тоже.
Разница между ними в том, что при использовании " (двойных кавычек) вычисляется выражение (подставляется значение) вставленное в них, например : <? $id =3 echo "Id: $id"; ?> даст вывод Id: 3.
При использовании ' (апостроф) такой подстановки не происходит.
При использовании ` - происходит выполнение заключенного в `` выражения, как команды отдаваемой ОС.

Добавлено спустя 5 минут, 22 секунды:
Упс. Сорри - насчет ` - это я погорячился. Только в perl )


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Я знаю про ' и ", но чтобы не мучатся надо юзать один вариант :)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 12 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan