alla fine ho risolto definendo un array di array in while, senza pensare troppo ai metodi di fetch:

$resources= array();
$query='SELECT * FROM resources';
$result = $db->query($query);
while($row=$result->fetch_assoc())
{
$resource[]=array("id" => "$row[id]", "resource"=>"$row[resource]", "categories"=>"$row[categories]");
}


grazie lo stesso