В таком виде оптимально это никак не сделать, только с полным перебором записей каждый божий раз, как предлагает
0xD34F.
Оптимальнее же сделать можно изменив структуру на:
{
"tags": {
"юр": 2,
"зозпп": 1,
"файл": 1,
"пароль": 1,
"сервер": 1
},
"data": [
{
"title": "заголовок 1",
"content": "запись 1",
"tags": [
"юр",
"зозпп"
]
},
{
"title": "заголовок 2",
"content": "запись 2",
"tags": [
"юр"
]
},
{
"title": "заголовок 3",
"content": "запись 3",
"tags": [
"файл",
"пароль",
"сервер"
]
}
]
}
Тогда при добавлении записи просто плюсуете количество использований тэга, при удалении минусуете. Если стало
0
- удаляете.
Хотя, конечно, если всё это на простых файликах и всё равно грузится в память - смысла слишком оптимизировать тут никакого нет.:)