选择PHP数组中的某些数据
当使用这行代码选择PHP数组中的某些数据,php,Php,当使用这行代码var_dump($ticket->find())时,我得到以下输出如何在所有对象中仅访问标识符 我尝试了var\u dump($ticket->find()->identifier)但返回null array (size=2) 0 => object(stdClass)[9] public 'tid' => string '1' (length=1) public 'uid' => string '22' (length=2
var_dump($ticket->find())时,我得到以下输出代码>如何在所有对象中仅访问标识符
我尝试了var\u dump($ticket->find()->identifier)代码>但返回null
array (size=2)
0 =>
object(stdClass)[9]
public 'tid' => string '1' (length=1)
public 'uid' => string '22' (length=2)
public 'subject' => string 'iPhone 8' (length=8)
public 'issue' => string 'iPhone 8 screen replacement' (length=27)
public 'device' => string 'iPhone 8' (length=8)
public 'created' => string '2017-05-25 00:01:11' (length=19)
public 'identifier' => string '29cd54bf' (length=8)
public 'status' => string 'New' (length=3)
public 'tech' => string 'None' (length=4)
1 =>
object(stdClass)[11]
public 'tid' => string '2' (length=1)
public 'uid' => string '22' (length=2)
public 'subject' => string 'iPhone 7' (length=8)
public 'issue' => string 'iPhone 7 screen replacement' (length=27)
public 'device' => string 'iPhone 7' (length=8)
public 'created' => string '2017-05-25 00:27:42' (length=19)
public 'identifier' => string 'b47f2c82' (length=8)
public 'status' => string 'New' (length=3)
public 'tech' => string 'None' (length=4)
您可以使用从find
返回的数组中的每个项目中选择所需的属性:
$filteredFields = array_map(function ($item) {
// Return whatever properties you want here:
return [$item->tid, $item->$uid, $item->issue];
}, $ticket->find());
$filteredFields
将是数组的数组
:
array(2) {
[0]=> array(3) {
[0]=> string(1) "1"
[1]=> string(2) "22"
[2]=> string(8) "iPhone 7"
}
[1]=> array(3) {
[0]=> string(1) "2"
[1]=> string(2) "22"
[2]=> string(8) "iPhone 7"
}
}
如果您只需要其中一个属性,则可能更易于使用:
这将返回如下内容:
array(2) {
[0]=> string(8) "iPhone 8"
[1]=> string(8) "iPhone 7"
}
您还可以获得一个关联数组,该数组指示使用第三个参数作为键的字段:
$subjectsByTid = array_column($ticket->find(), "subject", "tid");
这将返回:
array(2) {
["1"]=> string(8) "iPhone 8"
["2"]=> string(8) "iPhone 7"
}
$ticket->find()[0]->标识符
和$ticket->find()[1]->标识符
。您可以在$ticket->find()[i]->标识符上使用循环。我应该想得更仔细一点。谢谢。find()
方法来自哪里?如果您使用的是框架,可能有一种更直接的方法来实现您的目标。如果不是,如果您使用的是PHP7,array\u column
可以获得这些值。当Ivar\u dump
数组映射时,它不会返回任何内容。当我需要返回表中的所有票证时,这肯定是一个更有用的方法。@TrentonTyler当您调用数组\u map
时,您提供的函数将为您传入的数组中的每个项目调用,$ticket->find()返回的函数以及您从该函数返回的值,在本例中,它是另一个数组
,将作为结果添加到要返回的数组
。如果这不起作用,我建议检查您试图获取的参数是否可访问。
array(2) {
["1"]=> string(8) "iPhone 8"
["2"]=> string(8) "iPhone 7"
}