Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2012, 17:28   #1
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию Вывод всех символов ASII

Код:
<html><body>

<?php ## Печать всей таблицы ASCII-символов.
// Сначала создаем массив того, что мы собираемся выводить,
// не заботясь о форматировании (дизайне) информации
for ($i=0,$x=0; $x<16; $x++) {
  for ($y=0; $y<16; $y++) {
    $chars[$x][$y] = array($i, chr($i));
    $i++;
  }
}
// Теперь выводим накопленную информацию, используя идеологию 
// вставки участков кода в HTML-документ
?>
<table  border=1 cellpadding=3 cellspacing=0>
<? foreach ($chars as $row) {?>
  <tr>
  <? foreach ($row as $cell) { ?>
    <td>
      <?=$cell[0]?>:	
      <b><tt><?=$cell[1]?></tt></b>
    </td>
  <? }?>
  </tr>
<? }?>
</table>

</body></html>
Как работает вывод двумерного ассоциативного массива в этом коде?
$chars[$x][$y] = array($i, chr($i)); - здесь каждому элементу созданного массива $chars присваиватся значение результата анонимного вызова массива array без имени?
kilogram вне форума Ответить с цитированием
Старый 07.04.2012, 17:41   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от kilogram Посмотреть сообщение
Как работает вывод двумерного ассоциативного массива в этом коде?
$chars[$x][$y] = array($i, chr($i)); - здесь каждому элементу созданного массива $chars присваиватся значение результата анонимного вызова массива array без имени?
Здесь нет ассоциативного массива - у этого массива числовые индексы.
Массивы
Andkorol вне форума Ответить с цитированием
Старый 07.04.2012, 17:55   #3
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию

Код:
$chars[$x][$y] = array($i, chr($i));
array($i, chr($i)); - это значения с вызова анонимного массива присваиваются массиву $chars?
kilogram вне форума Ответить с цитированием
Старый 07.04.2012, 18:05   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от kilogram Посмотреть сообщение
array($i, chr($i)); - это значения с вызова анонимного массива присваиваются массиву $chars?
Какой ещё "анонимный массив"..?
Прочитайте внимательно материал по ссылке - там подробнейшая информация о массивах, в том числе - что такое array().
С примерами и пояснениями.
Andkorol вне форума Ответить с цитированием
Старый 07.04.2012, 18:36   #5
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию

Прочитал, в моем случае я вижу у меня простой двумерный массив с именем $chars. Если взять первую итерацию.
Тут элементу двумерного массива самому первому $chars[0][0] присвоилось 2 значения получается которые возвратил массив без имени array($i, chr($i)); ??
kilogram вне форума Ответить с цитированием
Старый 07.04.2012, 18:50   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от kilogram Посмотреть сообщение
Прочитал
Отлично!
Хотя ваши вопросы говорят о проблемах с пониманием прочитанного.
Проверим практикой.

Напишите код, создающий массив с двумя элементами:
1-й элемент - произвольная строка.
2-й элемент - массив из двух произвольных элементов(чисел или строк).
Для создания массивов в этом коде используйте только конструкцию array().
Andkorol вне форума Ответить с цитированием
Старый 07.04.2012, 19:18   #7
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию

Вот так наверное?
Код:
array(
	1=>"Приветя Дядя Петя!",
	2=>array(1=>5,2=>"Юлий Цезарь"),
);
kilogram вне форума Ответить с цитированием
Старый 07.04.2012, 19:43   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Можно и так.
Так вот этот ваш 2-й элемент - это и есть аналог вашего примера:
PHP код:
$chars[$x][$y] = array($ichr($i));
//
$some_array[2] = array(=> 5=> "Юлий Цезарь"); 
Т.е. элемент массива $chars[$x] с индексом $y является вложенным массивом (т.е. массивом в массиве):
PHP код:
$chars = array(
    
=> array( // уровень $x - строка в вашей таблице
        
=> array($ichr($i)), // уровни $y - ячейки в строке
        
=> array($ichr($i)),
        
// ...
        
=> array($ichr($i))
    ),
    
=> array( // уровень $x - строка в вашей таблице
        
=> array($ichr($i)), // уровни $y - ячейки в строке
        
=> array($ichr($i)),
        
// ...
        
=> array($ichr($i))
    ),
    
// ...
    
=> array( // уровень $x - строка в вашей таблице
        
=> array($ichr($i)), // уровни $y - ячейки в строке
        
=> array($ichr($i)),
        
// ...
        
=> array($ichr($i))
    )
); 
Andkorol вне форума Ответить с цитированием
Старый 07.04.2012, 19:57   #9
kilogram
Форумчанин
 
Регистрация: 04.03.2012
Сообщений: 144
По умолчанию

Это
Код:
$chars[$x][$y] = array($i, chr($i));
тоже самое что это?

Код:
$chars[$x][$y] = array(0 => $i, 1 => chr($i));
То оесть после присвоения первому элементу массива $chars[0][0] ----> массива array($i, chr($i)); после этого этот двумерный прверащается в трехмерный и все остальные итерации уже идут с трехмерным, хотя первая итерация была с двумерным?

После вот этой строки $chars[$x][$y] = array($i, chr($i));

двумерный массив $chars стает трехмерный, верно?

Последний раз редактировалось kilogram; 07.04.2012 в 20:00.
kilogram вне форума Ответить с цитированием
Старый 07.04.2012, 20:15   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от kilogram Посмотреть сообщение
тоже самое что это?
Да.

Цитата:
Сообщение от kilogram Посмотреть сообщение
Тоесть после присвоения первому элементу массива $chars[0][0] ----> массива array($i, chr($i)); после этого этот двумерный прверащается в трехмерный и все остальные итерации уже идут с трехмерным, хотя первая итерация была с двумерным?
двумерный массив $chars стает трехмерный, верно?
Нет таких строгих понятий - "двумерный", "трехмерным", "N-мерный"...
Есть понятия "одномерный" и "многомерный" - а сколько там в многомерных есть уровней вложенности - важно только для процесса обработки массива.
Все итерации у вас происходят с одинаковым по структуре массивом:
PHP код:
// имитация цикла
// первая строка в таблице - $x = 0
$chars[0][0] = array(0chr(0)); // $y = 0
$chars[0][1] = array(1chr(1)); // $y = 1
$chars[0][2] = array(2chr(2)); // $y = 2
// ...
$chars[0][N] = array(Nchr(N)); // $y = N

// вторая строка в таблице - $x = 1
$chars[1][0] = array(0chr(0)); // $y = 0
$chars[1][1] = array(1chr(1)); // $y = 1
$chars[1][2] = array(2chr(2)); // $y = 2
// ...
$chars[1][N] = array(Nchr(N)); // $y = N

// третья строка в таблице - $x = 2
$chars[2][0] = array(0chr(0)); // $y = 0
$chars[2][1] = array(1chr(1)); // $y = 1
$chars[2][2] = array(2chr(2)); // $y = 2
// ...
$chars[2][N] = array(Nchr(N)); // $y = N 
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод списка символов справа налево 5 раз подряд и исключить вывод цифр Gareek Помощь студентам 2 23.12.2011 21:41
Удаление из строки всех не alpha символов skeletor PHP 3 12.07.2010 17:28
ЗАМЕНА СИМВОЛОВ. ВСЕХ trivium91 Microsoft Office Word 1 12.03.2010 15:17
Замена во вводимой строке всех повторяющихся символов их восьмеричными представлениями и вывод результата AquaticSoul Общие вопросы C/C++ 5 08.03.2010 11:51
Замена во вводимой строке всех повторяющихся символов их восьмеричными представлениями. С++ AquaticSoul Помощь студентам 4 07.03.2010 22:48