

PHP přístup k objektům v poli
Ahoj, už mi to hlava nebere.
Mám objekty:
class TridaDetiSpecific
{
public $nazevTridy;
public $jmenoDitete;
public $znackaDite;
}
class OptionsTridaDetiSpecific
{
public $nazevTridy;
public $optionsString;
}
A objekty jsou v poli (každý typ jiné pole)
array_push($keyZakazaneZnackyTridy, $MyOptionsTridaDetiSpecific);
A potřebuju, když to mám v poli se zeptat, jaká je hodnota.
Například: Vypsat všechny použité značky, podle konkrétních jmen dětí, v konkrétní třídě.
Snáď začni tu:
https://stackoverflow.com/questions/8612190/is-it-possible-to-declare-an-array-of-objects
Ako PHP nepoznám ale musím povedať to API je fakt katastrofa.
Můžeš nějak lepe popsat, čeho chceš dosáhnout? Nejlépe nějakým příkladem.
Rozhodně Wikane. A omlouvám se, že reaguju teď.
Dělal jsem na tom od noci 4:00 a musel jsem se už natáhnout.
Zkrátka jde o to, že mám různé třídy dětí. Sadu značek pro děti.
![[99806-tridyadeti-png]](https://pc.poradna.net/files/99806-tridyadeti-png)
Navržené je to takto asi:
A jedná se mi o to, aby v rámci každé třídy se NEZOBRAZOVALY použité značky v Selectu.
To znamená mám třídu jménem "Marťova třída". Ta agreguje děti Lukášek se značkou "Beránek" a dítě Jana se značkou "Pejsek".
A mě jde o to, abych upravil Options v Selectboxu tak, aba nenabízely použité značky v dané třídě.
Takže v Marťově třídě už nebude k dispozici k výběru značky "beránek" a "Pejsek".
Mám to objektově rozvržené, a snažím se, aby to bylo co nejlépe chápavé, ten kód.
Takže mám objektové třídy výše a pole:
$keyZakazaneZnackyTridy = array();
Navržené je to takto
$MyOptionsTridaDetiSpecific->optionsString = $MyOptionsTridaDetiSpecific->optionsString . "<option value='$poc'>$znacky[$poc]</option>";
Kdy jde o to, odebrat ze specifických options pro Danou třídu značky.
Cítím, že jsem stále blíže.
"snažím se, aby to bylo co nejlépe chápavé, ten kód"
Nevypadá to tak.
"odebrat ze specifických options pro Danou třídu značky"
Takže máš dvě array, jednu všechny značky, druhou obsazené značky a ty chceš jen to, co není duplicitní? V tom případě:
Výstup:
Jo. Super, Zkusím tak.
Ale abych to upřesnil, zdaleka to takto jednoduché není.
Poněvadž mám pole objektů a zajímají mě jen některé objekty, které mají příslušnou vlastnost.
Takže porovnávám pole s objekty o specifické vlastnosti, zda obsahuje jiné pole objektů o specifické vlastnosti.
Špatně se to píše, vysvětluje.
Massaker ! Massaker ! Už to fachá.
$keyZakazaneZnackyTridy = array();
foreach ($myArrayTridaDetiSpecific as $detatko) {
if ($detatko->nazevTridy == $zaznam->skola_trida) {
$vlozit = $detatko->znackaDite;
array_push($keyZakazaneZnackyTridy, $vlozit );
}
}
$nepovolene = array_diff( $keyZakazaneZnackyTridy, $znacky);
for($poc = 0; $poc < 28; $poc++){
if (in_array($poc, $nepovolene)) {
continue;
}
.....