2017-05-25 153 views
1

如何過濾此數組中的每個數組以僅抓取某些數據片段,如tiduiddevice從PHP數組中返回多個值

我已經使用array_column來獲取只有一條信息,但我怎麼能得到多個?

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

上面的代碼片段是什麼返回數據數組。

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) 

預期輸出:

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

不知道你正在使用但沒有find()方法或find之前的東西允許你限制返回的列嗎? – AbraCadaver

回答

4

這裏我們使用array_map以達到所需的輸出。

解決方案1:

Try this code snippet here

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

解決方案2:

Try this code snippet here

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

謝謝Sahil。我正在查找php文檔中的array_map,但在執行代碼時遇到了麻煩。再次感謝。 –

+0

@TrentonTyler你可以在你的文章中分享你的代碼片段,以便我也可以幫助你。你可以用'$ arr'來改變我的文章的'$ array' –

+0

對於你可以使用'HTML table'。 –

0

使用array_map

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

你可以使用一個雙foreach循環來遍歷,然後打印出你喜歡的值。

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