2017-05-25 172 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; 
     } 
    } 
}