从PHP数组中返回多个值
如何过滤此数组中的每个数组以仅抓取某些数据片段,如tid
,uid
和device
?从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"
}
}
这里我们使用array_map
以达到所需的输出。
解决方案1:
$array=array_map(function($value){
return array($value["tid"],$value["uid"],$value["subject"]);
},$array);
print_r($array);
解决方案2:
foreach($array as $value)
{
$result[]=array($value["tid"],$value["uid"],$value["subject"]);
}
print_r($result);
谢谢Sahil。我正在查找php文档中的array_map,但在执行代码时遇到了麻烦。再次感谢。 –
@TrentonTyler你可以在你的文章中分享你的代码片段,以便我也可以帮助你。你可以用'$ arr'来改变我的文章的'$ array' –
对于你可以使用'HTML table'。 –
使用array_map
,
array_map(function($v){return [$v['tid'], $v['uid'], $v['device']];}, $array);
你可以使用一个双foreach
循环来遍历,然后打印出你喜欢的值。
foreach ($arr as $ar) {
foreach ($ar as $key => $value) {
if ($key == 'tid' | $key == 'uid' | $key == 'device') {
echo $key . ': ' . $value;
}
}
}
不知道你正在使用但没有find()方法或find之前的东西允许你限制返回的列吗? – AbraCadaver