2017-05-25 5 views
1

Wie könnte ich durch jedes Array in diesem Array, um nur bestimmte Teile der Daten wie tid, uid und device greifen?Rückgabe mehrere Werte aus PHP Array

Ich habe array_column verwendet, um nur eine Information zu erhalten, aber wie könnte ich mehrere bekommen?

$object = $ticket->find(); 
$arr = json_decode(json_encode($object), true); 
var_dump($arr); 

Das Codeschnipsel oben gibt das Array der Daten zurück.

array (size=2) 
    0 => 
    array (size=9) 
     'tid' => string '1' (length=1) 
     'uid' => string '22' (length=2) 
     'subject' => string 'iPhone 8' (length=8) 
     'issue' => string 'iPhone 8 screen replacement' (length=27) 
     'device' => string 'iPhone 8' (length=8) 
     'created' => string '2017-05-25 00:01:11' (length=19) 
     'identifier' => string '29cd54bf' (length=8) 
     'status' => string 'New' (length=3) 
     'tech' => string 'None' (length=4) 
    1 => 
    array (size=9) 
     'tid' => string '2' (length=1) 
     'uid' => string '22' (length=2) 
     'subject' => string 'iPhone 7' (length=8) 
     'issue' => string 'iPhone 7 screen replacement' (length=27) 
     'device' => string 'iPhone 7' (length=8) 
     'created' => string '2017-05-25 00:27:42' (length=19) 
     'identifier' => string 'b47f2c82' (length=8) 
     'status' => string 'New' (length=3) 
     'tech' => string 'None' (length=4) 

Erwartete Ausgabe:

array(2) { 
    [0]=> array(3) { 
     [0]=> string(1) "1" 
     [1]=> string(2) "22" 
     [2]=> string(8) "iPhone 8" 
    } 
    [1]=> array(3) { 
     [0]=> string(1) "2" 
     [1]=> string(2) "22" 
     [2]=> string(8) "iPhone 7" 
    } 
} 
+1

Weiß nicht, was Sie verwenden, aber erlaubt die Methode 'find()' oder etwas vor der Suche nicht, die zurückgegebenen Spalten einzuschränken? – AbraCadaver

Antwort

4

Hier stellen wir array_map verwenden gewünschten Ausgang zu erreichen.

Lösung 1:

Try this code snippet here

$array=array_map(function($value){ 
    return array($value["tid"],$value["uid"],$value["subject"]); 
},$array); 
print_r($array); 

Lösung 2:

Try this code snippet here

foreach($array as $value) 
{ 
    $result[]=array($value["tid"],$value["uid"],$value["subject"]); 
} 
print_r($result); 
+0

Danke Sahil. Ich habe Array_map in der PHP-Dokumentation gesucht, hatte aber Probleme damit, das mit meinem Code zu implementieren. Danke noch einmal. –

+0

@TrentonTyler Können Sie Ihr Stück Code in Ihrem Beitrag teilen, so dass ich Ihnen damit auch helfen kann. Sie können '$ array' meines Beitrags mit' $ arr' ändern. –

+0

Dafür können Sie 'HTML table' verwenden. –

0

Verwendung array_map,

array_map(function($v){return [$v['tid'], $v['uid'], $v['device']];}, $array); 
0

Sie könnten eine doppelte foreach-Schleife durchlaufen und dann aus den Werten drucken, die Sie mögen.

foreach ($arr as $ar) { 
    foreach ($ar as $key => $value) { 
     if ($key == 'tid' | $key == 'uid' | $key == 'device') { 
      echo $key . ': ' . $value; 
     } 
    } 
}