К сожалению, собственный тип данных, такой как массив и строка, может иметь только один формат и структуру.Если в вашем сценарии использования используются одни и те же данные в разных форматах или в другой структуре данных, рекомендуется создать объект данных.Объект данных - это объект, который хранит данные в своих полях и имеет множество входных и выходных методов, позволяющих использовать данные в различных форматах и структурах.
Это ООП-подход, в этом случае он сделает ваш код намного чище и понятнее, а в будущем его будет легче расширять или изменять.Но учтите, что это не уменьшит объем кода.В любом случае требуется функция преобразования формата.
Согласно описанию, у нас есть объект данных с именем Appointment с данными {DayOfWeek, TimeBlock, Type}.Однако функции ввода и вывода, которые описаны со ссылкой на список назначений, следовательно, эти функции не принадлежат объекту назначения.Они ссылаются на другой объект данных, AppointmentList, который содержит массив назначений и функций ввода и вывода.
Этот объект будет выглядеть следующим образом:
class Appointment
{
public $dayofweek;
public $timeblock;
public $type;
public function __construct($record)
{
$this->dayofweek = $record['dayofweek'];
$this->timeblock = $record['timeblock'];
$this->type = $record['type'];
}
}
class AppointmentList
{
public $appointmentArray = [];
function setData($data)
{
$prepared = [];
$i = 0;
while ($i < count($data['dayofweek'])) {
$a = $data['dayofweek'][$i];
$b = $data['timeblock'][$i];
$c = $data['type'][$i];
$record = ['dayofweek' => $a, 'timeblock' => $b, 'type' => $c];
$prepared[] = new Appointment($record);
$i++;
}
$this->appointmentArray = $prepared;
}
function getData() {
$data = ['dayofweek' => [],'timeblock' => [],'type' => []];
foreach ($this->appointmentArray as $appointment){
$data['dayofweek'][] = $appointment->dayofweek;
$data['timeblock'][] = $appointment->timeblock;
$data['type'][] = $appointment->type;
}
return $data;
}
}
Тогда, когда вы получите $ data иззапуск формы:
$al = new AppointmentList();
$al->setData($data);
. Вы можете использовать массив $al->appointmentArray
для доступа к встречам по одному и сохранения их в таблице.
И потом, когда вам нужно заполнить формуснова просто используйте $al->getData()
Обратите внимание, что это только пример.Обычно различные методы используются для автоматического сохранения объекта данных в таблице.
Надеюсь, это поможет.Удачи.