Count-funktion mit variierendem index

Hallo,

habe Folgendes vor:

$i = 0;
while($i testschleife" .$anzahl_vhr_[$i];
$i++;
}

Probleme gibt es hier nach dem Ein- und Ausblenden einzelner Bestandteile wohl nur mit der count-Funktion. Diese kann mit dem fortlaufenden Index „$i“ in „count($vhr_[$i])“ nicht umgehen.

Gibt es hier die Möglichkeit das [$i] so auszudrücken, dass es weiterhin mit der Schleife hochgezählt wird, aber nicht zu einem Error führt?

Danke und Grüße
Marcel

Marcel,

erst mal eine Bitte:
Versuche mal Deine Fragen ein wenig leichter verständlich zu formulieren.
Ausserdem wäre es schön, wenn Du einfacher verständliche Variablennamen verwenden würdest.
diese Unterstriche irritieren mich meistens…

zum anderen.
Warum machst Du nicht ein
while $i

$i = 0;
while($i testschleife" .$anzahl_vhr_[$i];
$i++;
}

das sollte 9x die zeile „testschleife 5“
ausgeben, was haettest du erwartet?

besser waere es hier uebrigens die schleife als for zu notieren.

Probleme gibt es hier nach dem Ein- und Ausblenden einzelner
Bestandteile wohl nur mit der count-Funktion. Diese kann mit
dem fortlaufenden Index „$i“ in „count($vhr_[$i])“ nicht
umgehen.

das kann sie ganz sicher.

Marcel,

erst mal eine Bitte:
Versuche mal Deine Fragen ein wenig leichter verständlich zu
formulieren.
Ausserdem wäre es schön, wenn Du einfacher verständliche
Variablennamen verwenden würdest.
diese Unterstriche irritieren mich meistens…

$array_[0] = array(„1“, „3“);
$array_[1] = array(„1“, „0“, „2“, „3“, „2“);
$array_[2] = array(„3“, „1“, „2“, „2“);
$array_[3] = array(„2“, „2“, „0“);
$array_[4] = array(„1“, „0“, „2“, „3“);
$i=0;
$anzahlarrays = 9;

// Hier weiß ich nicht wie ich die Anzahl der Arrays insgesamt
// zählen kann. Über „while $iAnzahl Variablen:“ .$anzahl_vhr_[$i]; $i++;
}

zum anderen.
Warum machst Du nicht ein
while $i

$array_[0] = array(„1“, „3“);
$array_[1] = array(„1“, „0“, „2“, „3“, „2“);
$array_[2] = array(„3“, „1“, „2“, „2“);
$array_[3] = array(„2“, „2“, „0“);
$array_[4] = array(„1“, „0“, „2“, „3“);
$i=0;

bzw.
$anzahlarrays = 5;
und statt der while-schleife eine
for($i=0; $i

Hallo Marcel,

evtl hilft Dir folgender Kommentar aus der PHP-Dokumentation weiter:
http://de.php.net/manual/de/function.count.php#72860

Gruesse

Stefan

Hallo,

Ich verstehe immer noch nicht ganz was du eigentlich möchtest.
So Wie ich das verstehe dann willst du wissen wieviele Arrays es Insgesammt gibt?

Würde dann so gehen:

 echo count($array\_, COUNT\_RECURSIVE); 

wenn du zu jedem key die anzahl wissen willst musst du es so machen:

foreach($array\_ AS $key =\> $array2) {
echo "Array $key hat folgende Anzahl: " . count($array2) ."\n";
}

Gruß
Phillip

So Wie ich das verstehe dann willst du wissen wieviele Arrays
es Insgesammt gibt?

Ja! Allerdings bekomme ich hier eine 23 heraus und keine 5, die es eigentlich sein sollte:

$array_[0] = array(„1“, „3“);
$array_[1] = array(„1“, „0“, „2“, „3“, „2“);
$array_[2] = array(„3“, „1“, „2“, „2“);
$array_[3] = array(„2“, „2“, „0“);
$array_[4] = array(„1“, „0“, „2“, „3“);

echo count($array_, COUNT_RECURSIVE);

ja wie das count_recursive schon sagt wird rekursiv gezählt wenn da ne 5 kommen sollen heisst das nur
echo count($array_);

aber wie schon andere meinten solltest du mal definieren was du überhaupt machen willst, einfach nur ne stückchen code schreiben und sagen geht nicht, hilft nicht wirklich weiter.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ah, danke!

Jetzt hat´s klick gemacht! Bin blutiger PHP-Anfänger und daher noch nicht so routiniert mit den ganzen Befehlen und zugehörigen Strukturen.

Die Anzahl der Arrays brauchte ich um Berechnungen durchführen zu können und die zugehörigen Schleifen entsprechend oft durchlaufen zu lassen.

Die Berechnungen funktionieren auch schon prächtig!

Jetzt kommt mein letztes Problem! Die ganzen Berechnungen sollen später in einem Boxplot (statistische Darstellung) ausgegeben werden.

Dafür muss ich die Ergebnisse meiner Berechnungen in ein vorgegebenes Format bringen:

$data = array(
open, close, min, max,
open, close, min, max,
open, close, min, max);

Also immer vier Werte in ein neues Array überführen.
Die Werte open, close, min, max habe ich berechnet und sind auch jeweils arrays. Diese beinhalten alle die gleiche Anzahl an Ergebnissen, so dass ich eine Schleife durchführen kann die letztendlich die folgenden Arrays in der gewünschten Rheinefolge in das oben genannte Array überträgt.

$open_ = array(„2“, „1“, „0“)
$close_ = array(„3“, „2“, „1“)
$min_ = array(„0“, „1“, „1“)
$max_ = array(„3“, „3“, „2“)

Ergebnis müsste also sein:
$data = array(
2, 3, 0, 3,
1, 2, 1, 3,
0, 1, 1, 3);

Habe mich auch schon daran probiert:

for($i=0; $i Array ( [0] => 0.5 [1] => 1 [2] => 1 [3] => 3 ) [1] => Array ( [0] => 0 [1] => 2 [2] => 0 [3] => 3 ) [2] => Array ( [0] => 1 [1] => 2.5 [2] => 1 [3] => 3 ) [3] => Array ( [0] => 0 [1] => 2 [2] => 0 [3] => 2 ) [4] => Array ( [0] => 0 [1] => 2.5 [2] => 0 [3] => 3 ) )

Was mache ich verkehrt?

Danke
Marcel

$open_ = array(„2“, „1“, „0“)
$close_ = array(„3“, „2“, „1“)
$min_ = array(„0“, „1“, „1“)
$max_ = array(„3“, „3“, „2“)

Ergebnis müsste also sein:
$data = array(
2, 3, 0, 3,
1, 2, 1, 3,
0, 1, 1, 3);

testest du das mit deinen livedaten oder mit den testdaten hier, weil wenn letzteres da sind nur 3 zahlen im array und nicht 4 nur in deinen ergebnisarray tauchen dann auf einmal 4 auf.

Habe mich auch schon daran probiert:

for($i=0; $i Array ( [0] => 0.5 [1] => 1 [2] =>
1 [3] => 3 ) [1] => Array ( [0] => 0 [1] => 2 [2]
=> 0 [3] => 3 ) [2] => Array ( [0] => 1 [1] =>
2.5 [2] => 1 [3] => 3 ) [3] => Array ( [0] => 0
[1] => 2 [2] => 0 [3] => 2 ) [4] => Array ( [0]
=> 0 [1] => 2.5 [2] => 0 [3] => 3 ) )

Trotzdem Danke an alle die mir tatkräftig geholfen haben :smile:
Marcel