2016-11-11 3 views
-7
$data = array("0"=>"1","id"=>"1","1"=>"mani","name"=>"mani","2"=>"ssss","lname"=>"ssss"); 

oben ist meine Ausgabe, aber ich möchte ein Array wie unten Format. Bitte hilf mir.Entfernen von unerwünschten Schlüssel/Wert-Paar in PHP-Array?

korrekte Ausgabe:

$data = array ("id"=>"1","name"=>"mani","lname"=>"ssss"); 
+2

[so] ist * nicht * ein Code schriftlich Service. Von Ihnen wird erwartet, dass Sie ** den Code selbst schreiben **. Nach [mehr Forschung] (http://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-sected-of-stack-overflow-users) Wenn Sie ein Problem haben, können Sie ** posten Sie, was Sie versucht haben ** mit einer ** klaren Erklärung, was nicht funktioniert ** und ein [minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve). Ich schlage vor zu lesen [wie man eine gute Frage stellt] (http://stackoverflow.com/help/how-to-ask). –

+0

Wenn Sie einen Wert aus einem Array entfernen möchten, können Sie ['unset()'] (http://php.net/manual/en/function.unset.php) verwenden – Henders

+1

Verwenden Sie nicht mysqli_fetch_array() ' da es sowohl ein numerisches als auch ein assoziatives Array zurückgibt. Verwenden Sie stattdessen mysqli_fetch_assoc() '. –

Antwort

1

Check dies, Verwendung ist is_numeric Nummer oder Zeichenfolge zu überprüfen.

$data = array("0"=>"1","id"=>"1","1"=>"mani","name"=>"mani","2"=>"ssss","lname"=>"ssss"); 

foreach ($data as $key => $val) 
{ 
    if(!is_numeric($key)) 
    { 
     $new_array[$key] = $val; 
    } 
} 

print_r($new_array); 

OUTPUT:

Array 
(
    [id] => 1 
    [name] => mani 
    [lname] => ssss 
) 

DEMO

+0

Wie OP diese Frage mit mysql OP-Array markiert sieht aus, wie es von einer Abfrage zurückgegeben wird und nur ändern der Abrufmodus wäre die richtige Lösung. – Rizier123

0
$data = array("0"=>"1","id"=>"1","1"=>"mani","name"=>"mani","2"=>"ssss","lname"=>"ssss"); 
$new_data = array(); 
foreach($data as $k => $v) 
if(strlen($k)>1) $new_data[$k] = $v; 

print_r($new_data); 
+0

Während dieses Code-Snippet das Problem lösen kann, erklärt es nicht, warum oder wie es die Frage beantwortet. Bitte [fügen Sie eine Erklärung für Ihren Code hinzu] (// meta.stackexchange.com/q/114762/269535), da dies wirklich zur Verbesserung der Qualität Ihres Posts beiträgt. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. ** Flaggers/reviewer: ** [Für Code-only-Antworten wie diese, downvote, nicht löschen!] (// meta.stackoverflow.com/a/260413/2747593) –

0

Ich bin ein wenig verwirrt, was genau Sie suchen. Sie geben Beispiele für die Ausgabe, aber sie sehen aus wie Code. Wenn Sie möchten, dass Ihre Ausgabe wie Code aussieht, müssen Sie klarer sein.

Wenn Sie Tutorials und Dokumentation betrachten, werden Sie auf lange Sicht viel Gutes tun. PHP.net ist eine großartige Ressource und die Array-Dokumentation sollten Sie viel mit dieser helfen: http://php.net/manual/en/function.array.php

1

Der Kodex-Snippet unten enthält selbsterklärende Kommentare. Es könnte hilfreich sein:

<?php 

    // SEEMS LIKE YOU WANT TO REMOVE ITEMS WITH NUMERIC INDEXES... 

    $data  = array( "0" => "1", 
          "id" => "1", 
          "1" => "mani", 
          "name" => "mani", 
          "2" => "ssss", 
          "lname"=> "ssss" 
         ); 

    // SO WE CREATE 2 VARIABLES TO HOLD THE RANGE OF INTEGERS 
    // TO BE USED TO GENERATE A RANGE OF ARRAY OF NUMBERS 
    $startNum = 0;  //<== START-NUMBER FOR OUR RANGE FUNCTION 
    $endNum  = 10;  //<== END-NUMBER FOR OUR RANGE FUNCTION 

    // GENERATE THE RANGE AND ASSIGN IT TO A VARIABLE 
    $arrNum  = range($startNum, $endNum); 

    // CREATE A NEW ARRAY TO HOLD THE WANTED ARRAY ITEMS 
    $newData = array(); 

    // LOOP THROUGH THE ARRAY... CHECK WITH EACH ITERATION 
    // IF THE KEY IS NUMERIC... (COMPARING IT WITH OUR RANGE-GENERATED ARRAY) 
    foreach($data as $key=>$value){ 
     if(!array_key_exists($key, $arrNum)){ 
      // IF THE KEY IS NOT SOMEHOW PSEUDO-NUMERIC, 
      // PUSH IT TO THE ARRAY OF WANTED ITEMS... $newData 
      $newData[$key] = $value; 
     } 
    } 

    // TRY DUMPING THE NEWLY CREATED ARRAY: 
    var_dump($newData); 
    // YIELDS:: 
    array (size=3) 
     'id' => string '1' (length=1) 
     'name' => string 'mani' (length=4) 
     'lname' => string 'ssss' (length=4) 

Oder noch prägnanter, können Sie das Array wie so gehen kann:

<?php 

    $data  = array( 
         "0"  => "1", 
         "id" => "1", 
         "1"  => "mani", 
         "name" => "mani", 
         "2"  => "ssss", 
         "lname" => "ssss" 
         ); 

    array_walk($data, function($value, $index) use(&$data) { 
     if(is_numeric($index)){ 
      unset($data[$index]); 
     } 
    }); 

    var_dump($data); 
    // YIELDS:: 
    array (size=3) 
     'id' => string '1' (length=1) 
     'name' => string 'mani' (length=4) 
     'lname' => string 'ssss' (length=4) 
+0

Wie OP diese Frage mit mysql getaggt hat Das Array von OP sieht so aus, als würde es von einer Abfrage zurückgegeben, und nur das Ändern des Abrufmodus wäre die richtige Lösung. – Rizier123

+0

@ Rizier123 Absolut .... Das ist eigentlich der richtige Weg zu gehen .... übersehen, dass obwohl; Aber danke, dass du es aufgezeigt hast. – Poiz

Verwandte Themen