2 декабря 2021, четверг  

PHPworld.ru - все о программировании на PHP, основы языка PHP, особенности PHP5
PHPworld.ru php php 5 SQLite Статьи Книги Форум PHP Гостевая книга Ссылки по PHP

Правила форума


Если вы впервые на нашем форуме - ознакомьтесь с правилами


 

Форум

  Dan Friday :: Создание, сортировка в случайном порядке, вывод многомерного массива
Здравствуйте, у меня 3 вопроса касающиеся создания многомерного массива и его сортировки в случайном порядке.

Пример:

Ваш любимый цвет?------Элемент внеш. массива
Зеленый-------------Элемент внутр. массива
Красный-------------Элемент внутр. массива
Желтый-------------Элемент внутр. массива

Любимое время года? ------Внешний массив
Лето-------------Элемент внутр. массива
Зима-------------Элемент внутр. массива
Осень-------------Элемент внутр. массива

1. Как создать такой массив?
2. Отсортировать в случайном порядке. (Нужно чтобы сами блоки вопросов и варианты ответов внутри каждого вопроса сортировались в случайном порядке, и конечно чтобы после сортировки, варианты ответов соответствовали своему вопросу)
3. Вывести массив.

У меня получается создать внутр. массив (где элементы – варианты ответов), а внешний по идее должен быть ассоциативным, но я не знаю как его так сделать и получается только численно индексированный. (А зачем мне 1,2,3… если мне нужна строка вопроса)
<?
$test=array(array(array("Зеленый"),
      array("Красный"),
      array("Синий"),
    ),
        array(array("Лето"),
    array("Зима"),
    array("Осень"),
              )
      );
?>
Отсортировать случайным образом тоже получается только внутренние элементы,
<?
shuffle ($test);
//php 4
foreach ($test as $key=>$value)
{
  shuffle($value);
  $test[$key] = $value;
}
?>
но даже если и получается отсортировать внешние то теряется связь - вопросы перескакивают к чужим элементам.

Вот так я вывожу, но опять же внешний массив числено-индексированный, который мне не нужен.
<?
for ($layer = 0; $layer < 2; $layer++ )
{
echo "$layer<BR>";
for ( $row = 0; $row < 3; $row++ )
{
for ( $column = 0; $column < 1; $column++ )
{
echo " | " . $test[$layer][$row][$column] ;
}
echo "|<BR>";
}
};
?>

В общем, я понятия не имею, как это можно сделать. Функции писать сам я не умею.
Поэтому, пожалуйста, приведите полный листинг на живом примере, как создать такой массив, отсортировать случайно и вывести.
  8 марта 2007, 02:05

Это сообщение было просмотрено: 14914 раз(а)

Ответить на сообщение

Вернуться к списку сообщений форума



 Ответить на сообщение
 Автор:
 Ваш email*:
уведомлять об ответах на соощение по email
не публиковать email в форуме
 Тема сообщения:
 Текст сообщения:

* - поле не обязательно для заполнения

 

Copyright © PHP World - Леонид Лукин, 2004-2008.

Главная PHP World | PHP | PHP 5 | SQLite | Статьи по PHP | Книги по PHP | Ссылки по PHP