Ich habe ein Problem mit dem Verständnis, warum meine Array mit 3 Elementen in 2 Teile geschnitten werden muss. Ich möchte auf eine Zahl zugreifen, die ich in das Array schiebe, aber es scheint nur den Index auszudrucken und nicht den 'Schlüssel'-Wert, den ich hineingeschoben habe ($ number).Wert von PHP-Array scheint falsch
Ich habe ein 2D-Array I in eine ID und eine ganze Zahl bin schieben, und dann sortieren:
$array = [[]];
array_push($array, $doc[_id], $number);
array_multisort($array);
ich dann filtern alle leeren Elemente:
$array = array_filter($array); //remove null elements
Dies alles funktioniert wie id erwartet jedoch das Array wie folgt von diesem Punkt aus:
unrated.array(5)
{
[2]=> object(MongoId)#32 (1)
{ ["$id"]=> string(24) "57b99696ce2350100b000029" }
[3]=> object(MongoId)#31 (1)
{ ["$id"]=> string(24) "57b998ccce2350181700002b" }
[4]=> object(MongoId)#33 (1)
{ ["$id"]=> string(24) "57b99a84ce2350100b00002b" }
[5]=> int(2) [6]=> int(3)
}
Auch dies ist in Ordnung, aber es bedeutet, wenn ich Schleife ove r das Array mit dem Code unten, damit er erscheint als 3 Elemente länger zu sein, als ich von 0-6 schneiden anstelle von 0-3:
$array = array_slice($array, 0, 6, true); //only get 3 elements from array
foreach ($array as $key => $value) {
echo $key; //prints out values from 1-5 weirdly.... should just print the $number value
$id = $value->{'$id'};
}
Was ich zu erreichen bin versucht, das Element finden in dem Array mit dem geringstmöglichen Wert, der zuvor geschoben wurde (array_push ($ array, $ doc [_id], $ number);) aber, weil ich kann nicht verstehen, warum das Array in 6 statt 3 Teile aufgespalten wird seine noch verwirrende .
Frage in Kürze: Wie greife ich auf die in das Array geschobene $ -Nummer und warum ist mein Array 6 scheinbar 6 groß, wenn es nur 3 Elemente enthält.
Jede Hilfe würde geschätzt, danke.
Was ist es, dass Sie 'array_push ($ array, $ doc [_id], $ number) expected' zu tun, um genau? Weil, was das tatsächlich tut, drückt ___two___ Werte auf das Ende des Arrays. Der Wert von '$ doc [_id]' und der Wert von '$ number'. Wenn Sie das 3 Mal tun, erklären Sie, warum Sie 6 Elemente im Array sehen. – Sherif
Nun, ich brauche nur einen Weg, um sowohl auf die ID als auch auf die $ -Zahl in meiner Schleife zuzugreifen, also erwartete ich, die $ -Nummer auf das Array zu schieben und die ID und Sortierung würde dazu führen, dass das Array nach dem $ -Nummernwert sortiert wird. Aber das Hauptproblem, das ich gelöst haben muss, ist letztendlich, wie man auf den $ -Nummer-Wert von der Schleife als Sortierung usw. zugreifen kann. Ich kann mit mehr Forschung lösen, wenn es ein Problem damit gibt. – D3181
Nun, Ihre Erwartungen sind dann falsch, weil sowohl '$ number' ___and___ 'id 'Werte im Array wären. Daher würde das Sortieren des Arrays das Sortieren von __both__ Werten bedeuten. Was Sie tun müssen, ist die "$ Nummer" direkt dem ID-Schlüssel zuweisen. – Sherif