Mischung aus end() und prev()
E wie einfach
- php
0 hotti0 E wie einfach0 Vinzenz Mai3 Sven Rautenberg1 hotti3 Sven Rautenberg0 suit
0 Vinzenz Mai0 bleicher
Servus,
ich muss irgendwie das 2t letzte Element meines Arrays ansprechen. end() spricht nur leider das letzte an. Und erst das letzet anzusprechen und dann mit prev() eines vorzurücken geht auch nicht.
Kann mir da jemand helfen?
h1,
Kann mir da jemand helfen?
Das letzte Element hat den Index [-1] und das davor hat [-2].
Viele Grüße,
Horst Erpel
Das letzte Element hat den Index [-1] und das davor hat [-2].
Das ist ja das erste was ich probiert habe und aus Python gewöhnt bin. ;)
var_dump($TEST); ergibt:
array(4) { [0]=> array(4) { ["X"]=> string(1) "1" ["Y"]=> string(1) "2" ["VX"]=> int(-1) ["VY"]=> int(-1) } [1]=> array(4) { ["X"]=> int(2) ["Y"]=> string(1) "2" ["VX"]=> string(1) "1" ["VY"]=> string(1) "2" } [2]=> array(4) { ["X"]=> int(3) ["Y"]=> string(1) "2" ["VX"]=> int(2) ["VY"]=> string(1) "2" } [3]=> array(4) { ["X"]=> int(4) ["Y"]=> string(1) "2" ["VX"]=> int(3) ["VY"]=> string(1) "2" } }
also ein 2D Array mit 4 Arrays innerhalb. Ich möchte z.B. hier auf $TEST[-2]["X"] also 3 und $TEST[-2]["Y"] 1 zugreifen. Alles was ich mit echo erhalte ist aber "nichts".
Hi!
Dir hilft count bestimmt weiter, eventuell mußt Du count nochmals auf ein Element des Arrays anwenden, falls dieses wiederum ein Array ist.
off:PP
Hallo,
array(4) { [0]=> array(4) { ["X"]=> string(1) "1" ["Y"]=> string(1) "2" ["VX"]=> int(-1) ["VY"]=> int(-1) } [1]=> array(4) { ["X"]=> int(2) ["Y"]=> string(1) "2" ["VX"]=> string(1) "1" ["VY"]=> string(1) "2" } [2]=> array(4) { ["X"]=> int(3) ["Y"]=> string(1) "2" ["VX"]=> int(2) ["VY"]=> string(1) "2" } [3]=> array(4) { ["X"]=> int(4) ["Y"]=> string(1) "2" ["VX"]=> int(3) ["VY"]=> string(1) "2" } }
also ein 2D Array mit 4 Arrays innerhalb. Ich möchte z.B. hier auf $TEST[-2]["X"] also 3 und $TEST[-2]["Y"] 1 zugreifen. Alles was ich mit echo erhalte ist aber "nichts".
$test = array(
0 => array(
"X" => "1",
"Y" => "2",
"VX" => -1,
"VY" => -1
),
1 => array(
"X" => 2,
"Y" => "2",
"VX" => "1",
"VY" => "2"
),
2 => array(
"X" => 3,
"Y" => "2",
"VX" => 2,
"VY" => "2"
),
3 => array(
"X" => 4,
"Y" => "2",
"VX" => 3,
"VY" => "2"
)
);
end($test);
$result = prev($test);
print "<pre>";
var_dump($result);
print $result['X'] . "\n";
print $result['Y'] . "\n";
print "</pre>";
Ausgabe:
array(4) {
["X"]=>
int(3)
["Y"]=>
string(1) "2"
["VX"]=>
int(2)
["VY"]=>
string(1) "2"
}
3
2
Wo ist das Problem?
Freundliche Grüße
Vinzenz
Moin!
end($test);
$result = prev($test);
Ich bin von solchen Array-Pointer-Funktionen ja nicht wirklich begeistert.
Aber es gibt natürlich auch eine Funktion, die das für einen lösen kann:
<http://de3.php.net/manual/en/function.array-slice.php>
`$result = array_slice($test, -2, 1);`{:.language-php}
Das ist äquivalent zu deinem Doppelcode mit end() und prev().
- Sven Rautenberg
$result = array_slice($test, -2, 1);
Ich möchte ja nicht meckern, aber wenn ich das auf mein 2D Array anwende, kann ich nicht mittels $Result["X"] drauf zugreifen, sondern muss dies mit $Result[0]["X"] machen. Mein Code:
// $Test = mein 2D Array
$Result = array_slice($Test,-2,1);
$Result var_dump:
array(1) { [0]=> array(4) { ["X"]=> int(3) ["Y"]=> string(1) "0" ["VX"]=> int(2) ["VY"]=> string(1) "0" } }
Jetzt erklär' mir bitte noch jemand wie ich PHP auch dazu überreden kann mich mittels $Result["X" draufzugreifen lassen zu können und ich bin zufrieden.
Danke!
Hallo,
Das letzte Element hat den Index [-1] und das davor hat [-2].
das mag in anderen Programmiersprachen so sein, aber nicht in PHP:
Ein einfaches Beispiel:
$myArray = array(
-1 => "Horst",
-2 => "Erpel"
);
print "<pre>";
print $myArray[-1], "\n"; # Ausgabe: Horst # (das vorletzte Element)
print $myArray[-2], "\n"; # Ausgabe: Erpel # (das letzte Element)
print "</pre>";
Ausgabe:
Horst
Erpel
In diesem Beispiel hat das letzte Element den Index [-2] und das vorletzte Element den Index [-1].
Freundliche Grüße
Vinzenz
Moin!
Kann mir da jemand helfen?
Das letzte Element hat den Index [-1] und das davor hat [-2].
Wenn man keine Ahnung hat: Einfach mal Fresse halten.
- Sven Rautenberg
moin Sven,
Das letzte Element hat den Index [-1] und das davor hat [-2].
Wenn man keine Ahnung hat: Einfach mal Fresse halten.
PHP ist so bescheuert, da kann ich meine Fresse einfach nicht halten ;-)
Viele Grüße,
Horst Schnautzbart (Der Schnautzer)
Moin!
Das letzte Element hat den Index [-1] und das davor hat [-2].
Wenn man keine Ahnung hat: Einfach mal Fresse halten.
PHP ist so bescheuert, da kann ich meine Fresse einfach nicht halten ;-)
Es steht dir frei, PHP blöd zu finden, und die Vorteile anderer Programmiersprachen bei jeder sich bietenden Gelegenheit herauszustellen. Das wäre OK, auch wenn's nerven würde.
Das hast du aber nicht getan. Du hast _für PHP_ mit dem Brustton der Überzeugung eine _falsche_ Lösung präsentiert. Eine, die du nicht selbst geprüft und funktionierend gesehen haben kannst. Eine, die jeder informierte Programmierer sofort als falsch identifizieren kann. Und diese Lösung präsentierst du hier einem Fragesteller, der sich augenscheinlich mit den Arrayfunktionen von PHP schon deutlich mehr befasst hat, als du selbst.
DAS ist dein Fail.
- Sven Rautenberg
DAS ist dein Fail.
Ggf. sollte man mit einer Strichliste beginnen, wie oft du "Fail" verwendest - das ist ja schon fast elitär :D
Hallo,
ich muss irgendwie das 2t letzte Element meines Arrays ansprechen. end() spricht nur leider das letzte an. Und erst das letzet anzusprechen und dann mit prev() eines vorzurücken geht auch nicht.
warum nicht? Das funktioniert hervorragend:
$myArray = array(
'x' => 17,
'y' => 'und',
'z' => 4
);
end($myArray);
print prev($myArray); # Ausgabe: und
Freundliche Grüße
Vinzenz
Grüße,
rsort, [2]?
MFG
bleicher
rsort, [2]?
Da muss ich dich enttäuschen, wenn dann rsort() und dann [1], schließlich wäre dann [0] das ehemals letzte und [1] das ehemals gesuchte vorletzte Element.
Grüße,
Da muss ich dich enttäuschen, wenn dann rsort() und dann [1], schließlich wäre dann [0] das ehemals letzte und [1] das ehemals gesuchte vorletzte Element.
du weißt schon was ich meine^^
MFG
bleicher