我试图根据他们所从事的行业来取得候选人。当我在一个只有一个行业的候选人中发送候选人请求时,我的请求会返回这些数据(它在JSON):
stdClass Object ([Candidates] => stdClass Object ([row] =>
stdClass Object ([no] => 1 [FL] => Array (
[0] => stdClass Object ( [content] => 213748000001275022 [val] => RESUMEID )
[1] => stdClass Object ( [content] => John (3) [val] => Modified by )
[2] => stdClass Object ( [content] => 11 Aug-2015 [val] => Modified time )
[3] => stdClass Object ( [content] => 3308 [val] => Candidate ID )
[4] => stdClass Object ( [content] => John (3) [val] => Recruiter )
[5] => stdClass Object ( [content] => Creative arts [val] => Branche / Industry )
[6] => stdClass Object ( [content] => Ja / Yes [val] => Accept af optagelse i Kandidatbank / Accept my registration in
candidatedatabase )))))
我使用此代码:
$rowArray = $data->response->result->Candidates->row;
for ($i = 0; $i < count($rowArray); $i++) {
$FL = $data->response->result->Candidates->row[$i]->FL;
}
我得到的确切错误是我&#34;不能使用stdClass类型的对象作为数组&#34;,但为什么现在这个错误?我在其他请求上工作得很好。要使用某些代码进一步解释一下,这里有$FL
用于:
if (array_key_exists(4, $FL) === true && $FL[4]->val === 'Branche / Industry') {
$industry = $FL[4]->content;
} else if (array_key_exists(5, $FL) === true && $FL[5]->val === 'Branche / Industry') {
$industry = $FL[5]->content;
} else {
$industry = $notSpecified;
}
它在我的PHP代码中设置候选变量,因此我可以将它呈现在表中。
答案 0 :(得分:1)
这应该有效:
$FL = $data->response->result->Candidates->row->FL[$i];
它告诉你“不能使用stdClass类型的对象作为数组”,因为你正试图这样做;像访问数组一样访问对象。也许您的服务器根据您发送的特定请求返回不同的数据结构。
答案 1 :(得分:1)
您可以按以下步骤操作 - 1.首先检查它是否是一个数组,然后像往常一样 2.否则创建一个数组并推送它然后照常执行
$rowArray = $data->response->result->Candidates->row;
if(!is_array($rowArray))
{
$rowArray=array($data->response->result->Candidates->row);
//so that $rowArray is now an array and count gives 1
}