1

我已经进行了相当多的谷歌搜索,但找不到任何有效的东西,我什么也没得到,这可能很简单,但有很多变化似乎与我正在做的不匹配。

为了让您总体了解我的工作,我正在访问一个 API 并将信息作为一个对象取回。有评论和附件,它们在单独的数组中。

我想要做的是按日期和时间的顺序一起显示评论和附件,而不是分开显示。

我认为最好的方法是通过评论数组创建一个循环,然后通过附件数组创建一个循环,然后加入两者并按日期(纪元)排序,然后循环整个合并循环,以呼应我想要的内容。那应该提供一些上下文,现在我只想为评论创建多维数组,我可以弄清楚其余的。

$comments_holder = array();

//total number of comments in the array     
$comment_total = $issue_json->fields->comment->total -1;
$i=1;
while ($i <= $comment_total)
    {
    //this is the date,time and timezone info for each comment
    $raw_date = $issue_json->fields->comment->comments[$i]->updated;

    $comments_holder[$i] = array();

    //convert_sql_time just converts from 2012-11-04T16:33:00.936+600 into epoch time so i can sort the results later based on date
    $comments_holder[$i]['comments_date'] = convert_sql_time($raw_date); 
    $comments_holder[$i]['comments_displayName'] = $issue_json->fields->comment->comments[$i]->author->displayName;
    $comments_holder[$i]['comments_body'] = $issue_json->fields->comment->comments[$i]->body;
    }
4

1 回答 1

3

如果数据一切正常,则此代码足以构建这样的数组:

$comments = $issue_json->fields->comment->comments;
$result = array();

foreach ($comments as $comment) {
  $result[] = array(
    'comments_date' => convert_sql_time($comment->updated),
    'comments_displayName' => $comment->author->displayName,
    'comments_body' => $comment->body,
  );
}

print_r($result);
  • 如果comment->comments 是一个数组,则无需单独计算;
  • foreach 足以遍历数组,无需为计算数组索引保留单独的变量;
  • [] 表示法将自动增加数组索引并直接分配数组将起到作用(即会导致多暗数组)
于 2012-11-24T22:21:03.517 回答