JSON — Структурирование данных

По сути, я пытаюсь отформатировать следующее:

У меня есть ряд пользователей, которые являются частью разных сообществ, и у каждого сообщества есть ряд задач, которые необходимо выполнить, НО некоторые задачи внутри сообщества связаны только с некоторыми пользователями. Вот так:

Community 1
Members: Joe, James

Tasks: Task 1, Task 2, Task 3

Assigned: Task 1 -> Joe, Task 3 -> James

Community 2:
Members: James

Tasks: Talk 1, Task 14, Task 15

Assigned: Task 1 -> Joe, Task 14 -> James

Так по сути. Джо должен выполнить задачу 1, а Джеймс должен выполнить задачу 3.

Мне нужен массив (который может быть закодирован в json), в котором хранится идентификатор сообщества, а также все задачи, которые они выполнили, но он должен быть легко доступен для получения сообщества и задач, которые он выполнил.

У меня есть список сообществ, которые существуют в настоящее время, и я хотел бы показать все задачи, которые были выполнены (конкретным пользователем) в зависимости от идентификатора сообщества, а также это, я также хочу добавлять и удалять вещи из категория «задачи», так нужен способ легко получить доступ к этим участникам

До сих пор я придумал следующее:

$progress = array (

"communities" => array(
"id" => 1,
"tasks" => array(
1 => "completed",
2 => "completed"),

"id" => 2,
"tasks" => array(
150 => "completed",
140 => "completed")
),
);

Но я не знаю, подходит ли это стиль массива для этого, так как я не знаю, насколько он будет сложным, когда мне нужно добавить / удалить или показать общее количество задач, оставленных для сообществ.

ОБНОВИТЬ:

Этот массив, с которым я сейчас работаю:

$x = array(

1 => array(
1,
2,
3,
4,
),

2 => array(
3,
5,
6,
10
)

);

Затем производит этот вид JSON:

{"1":[1,2,3,4],"2":[3,5,6,10]}

Это где-то правильно? Смогу ли я добавить и удалить узлы, а также добавить секции верхнего слоя к этому?

0

Решение

Пример кода в ответ на ваш комментарий

$progress = array (
"communities" => array(
1 => array(
"tasks" => array(
1 => array("status" => "completed", "assigned_users" => array("James", "Joe")),
2 => array("status" => "pending", "assigned_users" => array("James"))
),
),
2 => array(
//Content of task2
)
)
);

С такой расширенной моделью вы сможете:

  • назначить задачу одному или нескольким пользователям
  • удалить пользователя из конкретной задачи
  • знать, какие пользователи заняты или доступны
  • считать задачи и получать ресурсы (пользователей) назначенных

Получение задания 1 первого сообщества

echo $progress['communities'][1]['tasks'][1];

Прогулка по сообществу

foreach ($progress['communities'] as $c) {
//Browse the tasks
foreach ($c['tasks'] as $t) {
var_dump($t);
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector