我有一个数组,我传递给我的视图,它与多个表连接。我们称这个数组为Submissions
。所有submissions
包含SubmissionVote
S和一个典型的数据submission
对象看起来是这样的:在循环多个连接的数组时循环创建更易管理的数组的方法?
[1] => Array
(
[Submission] => Array
(
[user_id] => 17
[title] => Yo mama so fat when she went to the movies she sat next to everyone
[source] => http://www.ahajokes.com/ym01.html
[slug] => yo-mama-so-fat-when-she-went-to-the-movies-she-sat-next
[category] => funny
[created] => 2012-09-26 21:00:35
[id] => 104
)
[User] => Array
(
[id] => 17
[username] => bob_cobb
)
[SubmissionsVote] => Array
(
[0] => Array
(
[id] => 323
[user_id] => 2
[submission_id] => 104
[vote_type] => up
[when] => 0000-00-00 00:00:00
[voted_ip] => 842844107
)
[1] => Array
(
[id] => 322
[user_id] => 17
[submission_id] => 104
[vote_type] => up
[when] => 0000-00-00 00:00:00
[voted_ip] => 1163843117
)
)
[SubmissionThumbnails] => Array
(
[0] => Array
(
[id] => 6
[submission_id] => 104
[original] => http://www.ahajokes.com/g/smlogo.gif
[extension] => jpg
[slug] => http://www.ahajokes.com/g/smlogo.gif
)
)
)
现在我只是做了foreach
通过这个在我看来,抓住:$submission['Submission']['id']
,从中$submission['Submission']['category']
和其他有用的东西。这很好,但我想以某种方式能够创建一个新的对象(或者同样直观的东西),其数量为vote_type
,下降的数量为vote_type
,这样我就可以像$submission['Submission']['upVotes']
/$submission['Submission']['downVotes']
。
我做在CakePHP中的加入,这里是我的查询:
$this->find('all', array(
'fields' => array(
'Submission.user_id',
'Submission.title',
'Submission.source',
'Submission.slug',
'Submission.category',
'Submission.created',
'User.id',
'User.username'),
'order' => 'Submission.created DESC'));
我想这样做的唯一原因是因为经历,并有我的看法中添加了所有upvotes和downvotes会相当痛苦,更不用说漂亮马虎。
我该如何改进?