Suche auf lima-city
-
in: array Ebenen umkehren
geschrieben von gamebox
Hallo
Wenn ich ein Array in der Form habe
$data = array ( 'subdata' = array ( 'Name' = 'Spiele', 'subdata' = array ( 'Name' = 'Xbox One', 'subdata' = array ( 'Name' = 'Plattformen', 'subdata' = array ( 'Name' = 'Games', ) ) ) ) )
Wie komme ich dann auf genau die umgedrehte Reihenfolge
$data = array ( 'subdata' = array ( 'Name' = 'Games', 'subdata' = array ( 'Name' = 'Plattformen', 'subdata' = array ( 'Name' = 'Xbox One', 'subdata' = array ( 'Name' = 'Spiele', ) ) ) ) )
also so, dass die Ebenen im Baum genau andersrum stehen, letzte wird erste ...
... egal, wieviele Ebenen (hier: 4) das Array hat ... also das ist nur ein Beispiel
geht das mit einer (PHP internen) Funktion? ... oder selber eine schreiben? wie ?
-
in: maximaler Wert eines key aus 2d array ?
geschrieben von gamebox
ja ups, Tippfehler ... Aufruf der Funktion get_maxkey3
das
$maxv3 = get_maxkey2($data, 'count'); print '<p>'. $maxv3 .'</p>'."\n";
muss natürlich so:
$maxv3 = get_maxkey3($data, 'count'); print '<p>'. $maxv3 .'</p>'."\n";
... aber bei dem array_map "Ein-Zeiler" habe ich dann das Problem,
das ich nicht die ID des Array-Elements mit max-Count-Wert bekomme
Danke
-
in: Mit PHP Quellcode suchen und einfügen?
geschrieben von gamebox
Hallo
ich will dazu folgendes sagen,
die Idee einfach für alle POST / GET Variablen ein htmlspecialchars() o.ä. hinzufügen,
ohne zu Wissen was das Script mit den Variablen macht, ist totaler Quatsch.
... so einem Script, das fremde, unbekannte andere Scripte "umschreibt"
ist totaler Wahnsinn, und wird wohl mehr Scripte zer-schiessen als reparieren.
Wer sich auf so was einlässt (sein Script von Deinem "umschreiben" zu lassen)
dem ist sowieso nicht mehr zu Helfen ...
Du sprichst von "Sicherheit" und stellst selber ein MEGA Risiko dar,
denn wenn man Dir (Deinem Script) die Rechte geben würde,
im eigenen (für Dich unbekanntes und fremdes Script) rum zu schreiben.
dann hat man damit ein gaaaaaaaaaanz großes Sicherheits-Loch erst auf gemacht
Zitat: (tecfreak)Ich bin security researcher
Meine Meinung:du bist ein Sicherheits Risiko !!!
... security ? ... Vertrauen soll man Dir ? ... total lächerlich !!!
... wie viele versprechen im Internet, wie "Gut" sie seien,
und knallen dann durch Hintertüren Deinen Rechner (oder Script) mit MaleWare zu
nur ein Beispiel ... viele (kostenlose) Wordpress Themes "infizieren" Dein WP,
die sehen nichtmal schlecht aus, aber öffenen Hitertürchen zum WP System
oder anderes BSP ... gratis PHP-Scripte, die "mehr" Sicherheit versprechen,
aber in Wirklichkeit nur den Zweck haben Schad-Code (=MaleWare) zu verbreiten
ich möchte Alle (vorallem unerfahene / Anfänger) hiermit warnen,
nicht jedes "kostenlose PHP-Script" macht NUR das, was es verspricht,
sondern viele sind nur Tarnung um Deinen Webspace zu kapern
... und Deine Idee ... ein Script, das "mein" Script Quellcode umschreiben kann
passt genau in dieses Schema ... GEFAHR !!!! ... finger weg ... total lächerlich !!!
.. aber irgendie auch Lustig die Idee ... guter Scherz ... wäre was für 1. April
Nochmal .. wer sich auf sowas einlässt, dem ist sowieso nicht mehr zu Helfen.
Jeder mit gesundem Verstand erkennt doch sofort,
das es ganz bestimmt NICHT Gut ist wenn fremde
im eigenen Quellcode solche Änderungen machen können
... *da lach ich drüber* ...:xD ... wenns nur als Witz war, ... der war gut .. :=)
:P
-
in: maximaler Wert eines key aus 2d array ?
geschrieben von gamebox
hallo
hmm, also mit array_map bekomme ich es nicht hin
hier nochmal der Beispiel Datensatz (ohne Fehler wie oben)
// ------------------------------------------------------------ $data = array(); $data[0] = array( 'id' => 1, 'name' => 'aaa', 'count' => 24, 'egal' => 3 ); $data[1] = array( 'id' => 2, 'name' => 'bbb', 'count' => 15, 'egal' => 7 ); $data[2] = array( 'id' => 3, 'name' => 'ccc', 'count' => 32, 'egal' => 2 ); $data[3] = array( 'id' => 4, 'name' => 'ddd', 'count' => 11, 'egal' => 3 ); // ------------------------------------------------------------
... nur mit foreach
// ------------------------------------------------------------ function get_maxkey2($arr, $key) { foreach($arr as $itm) { $tmp[] = $itm[$key]; } return max($tmp); } $maxv2 = get_maxkey2($data, 'egal'); print '<p>'. $maxv2 .'</p>'."\n"; // ------------------------------------------------------------
aber mit array_map klappt es nur so
// ------------------------------------------------------------ $func = function($data, $key='count') { return($data[$key]); }; $tmp1 = array_map($func, $data); $maxv1 = max($tmp1); print '<p>'. $maxv1 .'</p>'."\n"; // ------------------------------------------------------------
sobald ich versuche, das mit array_map in eine funktion zu packen, geht es nicht ?!?
weil ich den gewünschen (variablen) Key-Name nicht per Funktions-Aufruf rein bekomme
also ich will das
nicht fest drin stehen haben,$key='count'
sondern so wie bei dem oben mit foreach als / beim Funktions-Aufruf übergeben
EDIT ... habs glaub doch hinbekommen ... mit array_map in einer funktion
// ------------------------------------------------------------ function get_maxkey3($arr, $key) { $func = function($arr, $key) { return($data[$key]); }; $tmp1 = array_map($func, $data); return max($tmp1); } $maxv3 = get_maxkey2($data, 'count'); print '<p>'. $maxv3 .'</p>'."\n"; // ------------------------------------------------------------
ist noch die Frage, was besser (schneller) ist, mit foreach oder mit array_map
? -
in: maximaler Wert eines key aus 2d array ?
geschrieben von gamebox
Hallo
ich habe ein 2D Array, zum Beispiel
$data[0] = array( 'id' = 1, 'name' = 'aaa', 'count' => 24), $data[1] = array( 'id' = 2, 'name' = 'bbb', 'count' => 15), $data[2] = array( 'id' = 3, 'name' = 'ccc', 'count' => 32), $data[3] = array( 'id' = 4, 'name' = 'ddd', 'count' => 11),
EDIT: ... dieses Array ist so natürlich Falsch, richtige Schreibweise siehe unten !
Wenn ich den maximalen Wert von 'id' ermitteln will,
dann klappt das ganz gut mit
$id_max = max(array_map('current', $array));
Ergebnis ist 4, also funktioniert
also diese current Funktion holt wohl einfach das jewils erste Element aus dem 2D-Array ?
ABER ... Frage ... wie bekomme ich anstat den maximalen Wert von 'id'
einen anderen maximalen Wert von einem beliebigen 'key' aus dem 2D Array
also hier im Bsp ... wie bekomme ich den maximalen Wert von 'count'
... irgendwie bei array_map das 'current' durch andere Funktion ersetzen?
... aber wie / welche?
Danke