Создать форум бесплатно: ixbb.ru :: Календарь на Май 2024 года: calendar2008.ru/2024/may/

Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению ) Reply to this topicStart new topicStart Poll

Как выпечатать значения массива?

meta-trader
  Отправлено: May 7 2011, 10:56 AM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 1120
Пользователь №: 1194
Регистрация:
11-October 07



Задолбал один массив.. никак не могу вытащить его значения ((

Массив имеет таку структуру:
QUOTE

Array
(
    [0] => Array
        (
            [0] => ужас
            [1] => жуть
            [2] => муть
        )
    [1] => Array
        (
            [0] => вампиры
            [1] => вурдалаки
            [2] => гремлины
        )
    [2] => Array
        (
            [0] => кин-конг
            [1] => годзилла
            [2] => ёжик
        )
)


Мне нужно вывести на печать эти значения:
QUOTE
кин-конг, годзилла, ёжик


Такое: echo $table[2][0] - не печатает то, что надо.


--------------------
Нужен форум для сайта? Создать свой форум
Нравятся ролевые игры? Создать форум для ролевой игры - создай ролевую и наслаждайся игрой!
Международный сервис фришных форумов - создать форум бесплатно.
PMEmail PosterUsers WebsiteICQ
Top
meta-trader
Отправлено: May 7 2011, 12:22 PM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 1120
Пользователь №: 1194
Регистрация:
11-October 07



Уже сам разобрался smile.gif


--------------------
Нужен форум для сайта? Создать свой форум
Нравятся ролевые игры? Создать форум для ролевой игры - создай ролевую и наслаждайся игрой!
Международный сервис фришных форумов - создать форум бесплатно.
PMEmail PosterUsers WebsiteICQ
Top
Матроскин
Отправлено: May 8 2011, 01:56 PM
Quote Post


  Генерал
*

Группа: Members
Сообщений: 245
Пользователь №: 2581
Регистрация:
9-June 09



Другим бы показал - мож у кого тоже аналогичная задача не получается smile.gif
CODE
<?php
$arr = array(
  array('ужас', 'жуть', 'муть'),
  array('вампиры', 'вурдалаки', 'гремлины'),
  array('кинг-конг', 'годзилла', 'ежик')
  );

foreach($arr[2] as $animal){
if(end($arr[2]) == $animal) echo $animal;
 else echo $animal. ', ';
}
?>


--------------------
PMEmail PosterUsers Website
Top
meta-trader
Отправлено: May 8 2011, 06:08 PM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 1120
Пользователь №: 1194
Регистрация:
11-October 07



Проблема в том что не печатает если так: <?php echo "<span>$table[2][0]</span>"; ?> и даже если: <?php echo "$table[2][0]"?>
Надо без кавычек таких "" sad.gif

CODE

<?php
$arr = array(
 array('ужас', 'жуть', 'муть'),
 array('вампиры', 'вурдалаки', 'гремлины'),
 array('кинг-конг', 'годзилла', 'ежик')
 );

for($i=0;$i<3;)
{
if($i!=2) {echo $table[2][$i]; echo ', '}
else echo $table[2][$i];
$i++;
}
?>

Я бы так написал)))


--------------------
Нужен форум для сайта? Создать свой форум
Нравятся ролевые игры? Создать форум для ролевой игры - создай ролевую и наслаждайся игрой!
Международный сервис фришных форумов - создать форум бесплатно.
PMEmail PosterUsers WebsiteICQ
Top
Матроскин
Отправлено: May 8 2011, 07:05 PM
Quote Post


  Генерал
*

Группа: Members
Сообщений: 245
Пользователь №: 2581
Регистрация:
9-June 09



QUOTE (meta-trader @ May 8 2011, 05:08 PM)
CODE

<?php
$arr = array(
 array('ужас', 'жуть', 'муть'),
 array('вампиры', 'вурдалаки', 'гремлины'),
 array('кинг-конг', 'годзилла', 'ежик')
 );

for($i=0;$i<3;)
{
if($i!=2) {echo $table[2][$i]; echo ', '}
else echo $table[2][$i];
$i++;
}
?>

Я бы так написал)))

Так получается не совсем универсально, поскольку нужно задавать в условии явно количество элементов массива... а если массив расширится или уменьшится? Нужно править код тогда... А так просто берется последний элемент массива и сравнивается с текущим: если есть совпадение- выводим элемент без запятой, иначе - элемент с запятой.
Да и цикл foreach как раз и существует для обхода элементов массива.


--------------------
PMEmail PosterUsers Website
Top
meta-trader
Отправлено: May 8 2011, 08:54 PM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 1120
Пользователь №: 1194
Регистрация:
11-October 07



Можно было бы сделать цикл бесконечным и дополнить код проверкой значения массива, если оно = '', то прекращали бы обработку бриком.


Я с циклом foreach мало знаком, в том языке, котором я умею программировать его нет. Поэтому пользуюсь тем что более знакомо.


--------------------
Нужен форум для сайта? Создать свой форум
Нравятся ролевые игры? Создать форум для ролевой игры - создай ролевую и наслаждайся игрой!
Международный сервис фришных форумов - создать форум бесплатно.
PMEmail PosterUsers WebsiteICQ
Top
meta-trader
Отправлено: May 8 2011, 08:59 PM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 1120
Пользователь №: 1194
Регистрация:
11-October 07



А вообще ты прав, for цикл не удобен, если требуется универсальность. Но в моём случае всё оказалось проще smile.gif


--------------------
Нужен форум для сайта? Создать свой форум
Нравятся ролевые игры? Создать форум для ролевой игры - создай ролевую и наслаждайся игрой!
Международный сервис фришных форумов - создать форум бесплатно.
PMEmail PosterUsers WebsiteICQ
Top
Матроскин
Отправлено: May 8 2011, 09:50 PM
Quote Post


  Генерал
*

Группа: Members
Сообщений: 245
Пользователь №: 2581
Регистрация:
9-June 09



QUOTE (meta-trader @ May 8 2011, 07:59 PM)
А вообще ты прав, for цикл  не удобен, если требуется универсальность...

Я этого не говорил biggrin.gif
Наоборот, цикл for гораздо более универсален, чем foreach , поскольку последний существует исключительно для прохождения в цикле по всем элементам массива.
Поставленную задачу можно решить и с использованием цикла for, и от этого код не потеряет универсальности - не будет зависеть от изменения количества элементов массива:
CODE
<?php
$arr = array(
  array('ужас', 'жуть', 'муть'),
  array('вампиры', 'вурдалаки', 'гремлины'),
  array('кинг-конг', 'годзилла', 'ежик')
  );

/*foreach($arr[2] as $animal){
if(end($arr[2]) == $animal) echo $animal;
 else echo $animal. ', ';
}*/
$count = count($arr);
for($i = 0; $i < $count; $i++){
if($i == $count - 1) echo $arr[2][$i];
 else echo $arr[2][$i]. ', ';
}
?>


--------------------
PMEmail PosterUsers Website
Top
meta-trader
Отправлено: May 9 2011, 02:24 AM
Quote Post


  Команда ЭйсВэб
*

Группа: Super moderator
Сообщений: 1120
Пользователь №: 1194
Регистрация:
11-October 07



smile.gif Нифига себе какой код.
Меня сейчас интересует задача на js. Не знаешь как там поступить?


--------------------
Нужен форум для сайта? Создать свой форум
Нравятся ролевые игры? Создать форум для ролевой игры - создай ролевую и наслаждайся игрой!
Международный сервис фришных форумов - создать форум бесплатно.
PMEmail PosterUsers WebsiteICQ
Top
Матроскин
Отправлено: May 9 2011, 08:21 AM
Quote Post


  Генерал
*

Группа: Members
Сообщений: 245
Пользователь №: 2581
Регистрация:
9-June 09



А что с кодом? cool.gif
Вроде он увеличился по сравнению с предыдущим вариантом всего на одну строку, которую можно было запихнуть в условие - тогда строк было бы одинаковое количество... просто, чтобы не считать на каждой итерации цикла количество элементов массива - лучше вынести перед циклом это дело в отдельную переменную... вот без закомментированной части:
CODE
<?php
$arr = array(
  array('ужас', 'жуть', 'муть'),
  array('вампиры', 'вурдалаки', 'гремлины'),
  array('кинг-конг', 'годзилла', 'ежик')
  );

$count = count($arr);
for($i = 0; $i < $count; $i++){
if($i == $count - 1) echo $arr[2][$i];
 else echo $arr[2][$i]. ', ';
}
?>

QUOTE
Меня сейчас интересует задача на js. Не знаешь как там поступить?

Открывал тему... смотрел... не понял задачу... закрыл biggrin.gif
щас попробую еще раз вникнуть)) Возможно, если опишешь более понятно что нужно, смогу помочь.


--------------------
PMEmail PosterUsers Website
Top

Topic OptionsСтраницы: (2) [1] 2  Reply to this topicStart new topicStart Poll

 



[ Script Execution time: 0.0362 ]   [ 10 queries used ]   [ GZIP выключен ]