preg_match_all('!A\[\d+\]=\[(.*?)\]!', $s, $matches);
$data = [];
foreach ($matches[1] as $row) {
$data[] = str_getcsv($row, ",", "'");
}
isset() не возвращает TRUE для ключей массива, указывающих на NULL, а array_key_exists() возвращает.
function get_portfolio_all($offset = 0, $limit = 4) {
global $connection;
$portfolio = $connection->prepare("SELECT * FROM portfolio ORDER BY id DESC LIMIT ?,?");
$portfolio->execute([$offset, $limit]);
return $portfolio->fetchAll(PDO::FETCH_ASSOC);
}
Преждевременная оптимизация - корень всех зол.