По сути, я пытаюсь отформатировать следующее:
У меня есть ряд пользователей, которые являются частью разных сообществ, и у каждого сообщества есть ряд задач, которые необходимо выполнить, НО некоторые задачи внутри сообщества связаны только с некоторыми пользователями. Вот так:
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]}
Это где-то правильно? Смогу ли я добавить и удалить узлы, а также добавить секции верхнего слоя к этому?
Пример кода в ответ на ваш комментарий
$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);
}
}
Других решений пока нет …