Ok, ich werde erklären, was ich hier zu implementieren versuche. Es ist wie eine Nummernsuche. Ich werde eine Nummer übergeben und der Server gibt ein Array mit der ganzen Nummer zurück. Wenn die übergebene Nummer vorhanden ist, muss ich diese Nummer aus dem Array abrufen.php- ein Wert aus dem Array popping gibt falsches Ergebnis zurück
Es funktioniert, aber nicht in allen Szenarien.
<?php
function fetchAll()
{
$data= array();
$motherArray='["1","48","2","44","4"]';
$data = json_decode($motherArray);
return $data;
}
$allIDs=fetchAll();
if (!empty($allIDs))
{
$checkThis=4;
if(in_array($checkThis,$allIDs))
{
if (($key = array_search($checkThis, $allIDs)) !== false)
{
unset($allIDs[$key]);
}
if(!empty($allIDs))
{
$allIDsJSON = json_encode($allIDs);
echo $allIDsJSON;
}
else
{
echo 'empty';
}
}
else
{
echo 'not present';
}
}
?>
Oben ist mein Code angegeben. Ich versuche, nach der Nummer 4 zu suchen.
Nummer 4 kann in jeder Position sein. Es kann in der ersten, mittleren oder letzten sein. Mein Code funktioniert, wenn die Nummer in der letzten Position ist. Dann gibt es die korrekte Ausgabe zurück.
Fall 1:
$motherArray='["1","48","2","44","4"]';
, wenn es in der letzten Position ist, erhalte ich die richtige Ausgabe:
["1","48","2","44"]
Fall 2:
Wenn Nummer 4 in ist jede andere Position
$ motherArray = '["1", "48", "2", "4", "44"]';
dann die Ausgabe ich erhalte, ist:
{"0":"1","1":"48","2":"2","4":"44"}
Ich weiß nicht, warum es so passiert. Kann mir jemand helfen, herauszufinden, was mit diesem Code nicht stimmt?
* mit der Wenn-Nummer 4 in einer anderen Position ist * - Array hat keine sequentiellen Indizes und dekodiert Funktion ein Objekt erstellen.Verwenden Sie '$ allIDsJSON = json_encode (array_values ($ allIDs));' – splash58
das obige ist die richtige Antwort –