从PHP stdClass获取属性名
我有一个数组对象,看起来像:从PHP stdClass获取属性名,php,object,Php,Object,我有一个数组对象,看起来像: $inDatabase = Array ( [0] => stdClass Object ( [abc@gmail.com] => Array ( ) ) [1] => stdClass Object ( [xyz@gmail.com] => Array
$inDatabase = Array
(
[0] => stdClass Object
(
[abc@gmail.com] => Array
(
)
)
[1] => stdClass Object
(
[xyz@gmail.com] => Array
(
)
)
)
如何将电子邮件地址推送到新阵列上?我尝试了以下方法:
$innerKeys =[];
$temp=[];
for($i=0;$i<2;$i++){
$temp = array_keys($inDatabase[$i])
//so I thought $temp[0] would have the email address but $temp is null.
array_push($innerKeys,$temp[0]);
}
$innerKeys=[];
$temp=[];
for($i=0;$iarray\u keys()
用于数组。若要将对象属性转换为数组,请使用get\u object\u vars()
。因此您需要
$temp = array_keys(get_object_vars($inDatabase[$i]));
array\u keys()
用于数组。若要将对象属性转换为数组,请使用get\u object\u vars()
。您需要
$temp = array_keys(get_object_vars($inDatabase[$i]));
您可以使用array\u reduce()
、get\u object\u vars()
和array\u keys()
工作示例:您可以使用array\u reduce()
、get\u object\u vars()
和array\u keys()
工作示例:您也可以强制转换到数组并获取第一个键。我对其进行了一些修改:
foreach($inDatabase as $o) {
$innerKeys[] = array_keys((array)$o)[0];
}
但是,由于您想要第一个,因此,键(出乎意料地)将对对象起作用:
foreach($inDatabase as $o) {
$innerKeys[] = key($o);
}
或者更简单:
$innerKeys = array_map('key', $inDatabase);
您也可以将其强制转换为数组并获取第一个密钥。我对其进行了一些修改:
foreach($inDatabase as $o) {
$innerKeys[] = array_keys((array)$o)[0];
}
但是,由于您想要第一个,因此,键(出乎意料地)将对对象起作用:
foreach($inDatabase as $o) {
$innerKeys[] = key($o);
}
或者更简单:
$innerKeys = array_map('key', $inDatabase);
为什么您首先使用电子邮件地址作为属性名称?这是否回答了您的问题?更简单,没有循环。为什么您首先使用电子邮件地址作为属性名称?这是否回答了您的问题?更简单,没有循环。这不产生输出。print\r($temp)空白我打错了数组名,你复制了我的错误吗?顺便说一句,你为什么不使用foreach
?这不会产生任何输出。print\r($temp)是空白我打错了数组名,你复制了我的错误吗?顺便说一句,你为什么不使用foreach
?