Outo probleema tuli PHP ohjelman kanssa, ei löydä arrayn indeksiä(avainta) joka selvästi on olemassa.
Testikapulat:
echo "<pre>"; $keys = array_keys($zone_zone[5]); print_r($keys); if(array_search('minimum_size', $keys)){ print_r($zone_zone[5]["mininum_size"]); } echo "</pre>"; // Tulostaa Array ( [0] => geo_zone_id [1] => title [2] => country [3] => status [4] => method [5] => calculation [6] => minimum_size [7] => maximum_size [8] => cost [9] => minimum [10] => maximum [11] => sizeuse_value [12] => filter [13] => include [14] => exclude ) Notice: Undefined index: mininum_size in C:\MAMP\htdocs\3020\admin\controller\extension\shipping\zone.php on line 157
Funktiot array_keys ja array_search löytävät kyseisen indeksin, mutta print_r ja isset funktiot ei.
Lisäys:
Pieni muutos tuohon äskeiseen. Tämä löytää indeksin, paitsi print_r ei löydä sitä:
Tässä isset ei löydä indeksiä, tulostaa '5'.
if($gzone['geo_zone_id'] == 5){ echo $gzone['geo_zone_id']; if( isset($zone_zone[$gzone['geo_zone_id']]['miminum_size']) ){ print_r($zone_zone[$gzone['geo_zone_id']]['mininum_size']); } }
Lisäys: Ps. Käytössä PHP 7.0.0
Virherivillä (ja virheilmoituksessa) lukee mininum eikä minimum. Viimeisessä koodissa lukee lisäksi miminum. Eli kannattaa lukea tarkemmin ja olla typottamatta. Voisit tehdä teksteistä vakioita (const), jotta saisit selvemmän ilmoituksen kirjoitusvirheistä.
const INDEX_MINIMUM_SIZE = 'minimum_size'; echo $t[INDEX_MIMINUM_SIZE]; // Warning: Use of undefined constant INDEX_MIMINUM_SIZE
Kannattaa myös päivittää PHP. Versio 7.0.0 on vuodelta 2015 ja sisältää siis monia bugeja (myös tietoturva-aukkoja), jotka ovat julkisesti tiedossa. Nykyinen versio 7.0-sarjasta olisi 7.0.27, ja myös siirtymistä 7.1- tai 7.2-sarjaan kannattaa harkita.
Copy/pastea pitkät muuttujien nimet tai vastaavasti, käytä editoria, joka osaa ehdottaa muuttujien nimiä sitä mukaan kun kirjoitat. Vältyt monelta lapsukselta.
Kiitos :)
Mikä tahansa asiansa osaava editori osaa highlightata maalatun tekstinosan muut ilmentymät, jolloin typot on nopea tarkastaa vaikkei osaisi lukeakaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.