Intereting Posts
PHP: ускоритель JSON или XML? Ошибка при записи файла при простом кэшировании PHP где является фатальной ошибкой «Не удается получить доступ к пустому свойству» в функции класса PHP? CodeIgniter 2.0 – проверка массивов Создание XML из списка HTML с помощью PHP Parsley.js Отправить форму не работает при использовании addAsyncValidator и удаленного preg_match_all () : Неизвестный модификатор ']' Использование значения столбца как индекса массива в доктрине загрузить файл php $ _FILES undefined index error Центральный вход с SAML и создание сайта для работы в качестве поставщика удостоверений Возможно ли регулярное выражение для определения define () содержимого? Размещение функций администратора CakePHP / MVC Добавление, удаление и редактирование пользователей администратором в php Как preg_replace \ "с \" "при хранении в csv-файле с использованием fputcsv Как продолжать проверку файла до его появления, а затем предоставить ссылку на него

Как вы храните случайные части массива в массиве и затем печатаете в виде списка?

Последующий вопрос: как случайным образом взять некоторые примеры из массивов, перетасовать их и поместить в новый массив, который будет отформатирован как список

Как вы храните случайные части массива в массиве и затем печатаете в виде списка?

Я знаю, что есть ответы на обе части моего вопроса, но два ответа, которые я нашел, несовместимы друг с другом. Я пытаюсь сделать это с помощью PHP, но я готов использовать другой язык кода, если это абсолютно необходимо.

Я составил простую версию того, что я пытался сделать до сих пор. Я хотел бы сохранить один случайный вопрос из каждого массива ($ mars, $ jupiter и $ earth) в качестве другого массива ($ all), а затем переформатировать этот массив как список, который будет отображаться как html (используя <ul> и <li> ).

По какой-то причине первая функция хочет => array (), а вторая – нет.

Это делает форматированный список html-стиля из массива (замените $ all на массив, который вы хотите отформатировать)

function makeList($all) { //Base case: an empty array produces no list if (empty($all)) return ''; //Recursive Step: make a list with child lists $output = '<ul>'; foreach ($all as $key => $subArray) { $output .= '<li>' . $key . makeList($subArray) . '</li>'; } $output .= '</ul>'; return $output; } 

Здесь я просто делаю массивы. Для форматирования, описанного выше, необходим массив => array (). Я не знаю почему.

 $mars = array ('How big is Mars?'=>array(), 'How many moons does Mars have?'=>array(), 'How far away is Mars?'=>array(), 'What is the highest point on Mars?'=>array()); $jupiter = array ('How big is Jupiter?'=>array(), 'How many moons does Jupiter have?'=>array(), 'How far away is Jupiter?'=>array(), 'What is the highest point on Jupiter?'=>array()); $earth = array ('How big is Earth?'=>array(), 'How many moons does Earth have?'=>array(), 'How far away is Earth?'=>array(), 'What is the highest point on Earth?'=>array()); //An array of the three arrays $all = array ($mars, $jupiter, $earth); 

Это печатает отформатированную версию $ all

 echo makeList ($all); 

Это случайное взятие двух вопросов из массива $ marz и их печать

 $marz = array ('How big is Mars?', 'How many moons does Mars have?', 'How far away is Mars?', 'What is the highest point on Mars?'); $rand_keys = array_rand($marz, 2); echo $marz[$rand_keys[0]] . "\n"; echo $marz[$rand_keys[1]] . "\n"; 

Здесь я сохраняю эти результаты в новом массиве и печатаю его как доказательство в уродливой форме массива

 $new = array ($marz[$rand_keys[0]], $marz[$rand_keys[1]]); print_r ($new); 

Related of "Как вы храните случайные части массива в массиве и затем печатаете в виде списка?"