Я близок к завершению написания кода для плагина, который позволяет администратору добавлять пользовательские данные в базу данных SQL 'custom_tokens'. Поскольку плагин допускает несколько «токенов», я хочу, чтобы он был упорядочен следующим образом («enu» можно рассматривать как категорию токенов, если хотите):
[enu] => Array (
[0] => Array (
[name] => Enumivo
[contract] => enu.token
[symbol] => ENU
[logo] =>
)
[1] => Array (
[name] => Eurno
[contract] => token.eurno
[symbol] => ENO
[logo] =>
)
)
Все это хорошо работает для сохранения токенов (у меня есть PHP, чтобы проверить, есть ли токен в этой категории и, если его нет, создать категорию. Если есть, просто добавьте к нему.
Проблема с удалением записей. До того, как сделать его вложенным массивом, он работал нормально - маркер, который вы выбрали для удаления, был бы удален, а массив переставлен - но теперь я добавил верхний уровень, с которым я столкнулся, в следующей проблеме: например, при удалении «Eurno» также переименует клавишу верхнего уровня («enu») в число. Пример массива после удаления выглядит следующим образом:
[0] => Array (
[name] => Enumivo
[contract] => enu.token
[symbol] => ENU
[logo] =>
)
Желаемый результат будет:
[enu] => Array (
[name] => Enumivo
[contract] => enu.token
[symbol] => ENU
[logo] =>
)
Код, который я считаю проблематичным, выглядит следующим образом:
// Get array //
$cur_tokens = get_option('custom_tokens');
// Set the nest to look in //
$cur_tokens = $cur_tokens['enu'];
// Initialise the loop //
foreach ($cur_tokens as $key => $cur) {
// Check which item has been selected for deletion //
if(isset($_POST['token-'.$key])) {
// Unset it //
unset($cur_tokens[$key]);
// Update the database //
update_option( 'custom_tokens', $cur_tokens );
}
}
Любая помощь очень ценится. Я уже пытался добиться этого, установив ключ в null, а затем выполнив array_filter (), но вернул те же результаты.
Я знаю, что это, вероятно, что-то глупое, как всегда.
Заранее спасибо.