:unsure: array gibt fehler zurück !

ThePosterity

Aktives Mitglied
<?PHP
$haus = array('holz' => '10','stein'=>'100','bauzeit'=>'1000');
print_r($haus);
$count = array_count_values($haus);
echo "<br>".$haus($count);
?>

Warum funktioniert das nicht ?:unsure:Bitte helft mir !

Da sollte doch das letzte array ausgegeben werden ?Aber tut es es nicht
sad.gif
 
so hab es geändert:

<?PHP
$haus = array('holz' => '10','stein'=>'100','bauzeit'=>'1000');
print_r($haus);
$count = count($haus);
echo "<br>".$count;
?>

da gibt php ja 3 aus .

<?PHP
$haus = array('holz' => '10','stein'=>'100','bauzeit'=>'1000');
print_r($haus);
$count = count($haus);
echo "<br>".$haus($count);
?>

da sollte das 3te array angezeigt werden da $count ja 3 ist ???

<?PHP

$haus = array('holz' => '10','stein'=>'100','bauzeit'=>'1000');
print_r($haus);
$count = count($haus);
echo "<br>".$haus($count-1);
?>

da sollte das vorletzte ausgeben werden aber tut es nicht ???
ich kapier das nicht
sad.gif
 
man verwendet bei Array-Adressierungen eckige Klammern. Runde Klammern gibt's nur bei Funktionsdefinitionen und Funktionsaufrufen, daher Versucht PHP in deinem Script ne Funktion aus der Variablen zu machen, was aber nicht funktioniert. Richtig wäre es so:

CODE
$haus = array('holz' => '10','stein'=>'100','bauzeit'=>'1000');
print_r($haus);
$count = count($haus);
echo "<br>".$haus[$count-1];



allerdings funktioniert das in deinem Fall nicht, weil deine Indizes keine Zahlen von 0 bis $count sind, sonder Wörter (holz, stein, bauzeit).

Die Einfachste Lösung wäre:


CODE
$haus = array('holz' => '10','stein'=>'100','bauzeit'=>'1000');
print_r($haus);
echo "<br>".array_pop($haus);



geht aber nur wenn du den Array nach diesem Codeschnippsel nicht mehr komplett benötigst... denn der letzte Eintrag wurde entfernt

So geht es generell, ohne den Array zu beeinflussen:


CODE
$haus = array('holz' => '10','stein'=>'100','bauzeit'=>'1000');
print_r($haus);
$schluessel = array_keys($haus);
echo "<br>".$haus[array_pop($schluessel)];



gibt dafür noch ein dutzend weiter Wege... zB. mit foreach, while, list usw...
 
Vielleicht hilft das ja hier, um in die Thematik einzusteigen ...

CODE
<?php

$haus = array('holz' => '10','stein'=>'100','bauzeit'=>'1000');

# den Wert des letzten Items des Arrays ausgeben
echo end($haus) . "<br>\n";

# immer Wert des letzten Items des Arrays ausgeben (Stack)
while($haus) {
echo array_pop($haus) . "<br>\n";
}

# allerdings ist das Array jetzt leer, sodass man es neu
# initialisieren muss :-(
$haus = array('holz' => '10','stein'=>'100','bauzeit'=>'1000');

# besser ist es dann so
foreach($haus as $key => $value) {
echo $key . ": " . $value . "<br>\n";
}

# oder so, wenn es rueckwaerts sein muss
foreach(array_reverse($haus) as $key => $value) {
echo $key . ": " . $value . "<br>\n";
}

?>



Arrays zu benutzen ist eigentlich nicht schwer. In PHP ist es nur so, dass mehrere Datentypen allgemein zum Array-Typ zusammengefasst sind. In Python gibt es beispielsweise list, tuple und dictonary. Diese Typen haben zwar aehnliche Methoden, unterscheiden sich jedoch wiederum in einigen wichtigen Details stark voneinander.

den
 
Zurück
Oben