Ich versuche, das Wort "online" in einem Array mit Schlüsseln und Werten zu zählen.PHP-Funktion gibt unerwartete Ausgabe
function p($a){
function printAllVals($a, $val) {
if (!is_array($a)) {
if ($a == "online"){
$val+=1;
echo $val;
//echo $a <-- this prints online 5 times
}
return;
}
foreach($a as $k => $v) {
printAllVals($v, $val);
}
}
printAllVals($a, 0);
}
druckt "online" 5 Mal, wenn $a
wiederholte, aber wenn die $ val prints "1" 5-mal. Scheint, dass es den ursprünglichen Wert von $val
nimmt, wenn die Funktion aufgerufen wird. Was habe ich falsch gemacht?
$ a ist das Array und es ist wie folgt (mehrdimensionale):
prod:
cluster:
csddb:
inst_1: online
inst_2: online
oiddb:
inst1: online
inst2: offline
local:
quoid:
inst_1: offline
inst_2: offline
qaprod:
inst_1: offline
inst_2: offline
Sorry für die unvollständige Frage.
Was sind die Eingabedaten, mit denen Sie testen? –
@dragoste Es ist etwas wie das Folgende, aber länger. prod: Cluster: csddb: inst_1: Online inst_2: Online oiddb: inst1: Online inst2: offline local: quoid: inst_1: offline inst_2: offline qaprod: inst_1: offline inst_2: offline – TAS
Bitte aktualisieren Sie es in Ihrem Post im richtigen Format. –