public static function countPlace($plgresult, $place = null, $byplace = true) { // Immer mit einem Array arbeiten (schützt vor null/false/Objekt) $data = is_array($plgresult) ? $plgresult : []; // Sonderfall wie in deinem Code genutzt: countPlace($plgresult, false, false) // -> Assets-Liste sammeln if ($place === false && $byplace === false) { $assets = []; foreach ($data as $item) { if (!empty($item['assets']) && is_array($item['assets'])) { // flach zusammenführen $assets = array_merge($assets, $item['assets']); } // Manche Themes/Plugins benutzen andere Keys: if (!empty($item['asset']) && is_array($item['asset'])) { $assets = array_merge($assets, $item['asset']); } } return $assets; // immer Array } // Wenn kein bestimmter Platz angefragt ist, gib einfach alle Items zurück if ($place === null) { return $data; // immer Array } // Normales Filtern nach Platz/Position // Häufige Feldnamen abdecken: 'place', 'position', 'plocation', 'slot' $out = []; foreach ($data as $item) { $p = null; if (isset($item['place'])) { $p = $item['place']; } elseif (isset($item['position'])) { $p = $item['position']; } elseif (isset($item['plocation'])) { $p = $item['plocation']; } elseif (isset($item['slot'])) { $p = $item['slot']; } if ($p === $place) { $out[] = $item; } } return $out; // immer Array }