Ни
array_slice(), ни
array_filter() не подошли,
тут подробнее.
Реализовал следующим образом, через array_diff_key():
if ($_POST['member'] == 1) {
// подключаемся к БД "auth"
$auth = new Flintstone('auth', [
'dir' => './database/',
'formatter' => new JsonFormatter()
]);
// выбираем все записи в таблице
$data = $auth->getAll();
// формируем тело ответа
$table_data = json_encode($data, JSON_FORCE_OBJECT);
$arr = json_decode($table_data, true);
// отфильтруем ненужный нам элемент
$filterOutKeys = array( KEY_NUM );
$filteredArr = array_diff_key( $arr, array_flip( $filterOutKeys ) );
$id = 0;
$newJson = [
'rows' => array_map(
function ($uid, $el) use (&$id) {
$el['token_key'] = $uid;
$el['id'] = $id++;
return $el;
},
array_keys($filteredArr),
array_values($filteredArr)
)
];
// отвечаем...
echo json_encode($newJson);
}