迭代数组并在PHP中创建项集合?

时间:2012-03-30 13:52:58

标签: php arrays collections

我有一个巨大的数组,我用foreach循环。

foreach ($items as $item) {
    $sender = $item->getSender();
    $id = $item->getId();
}

$ sender可以是任何字符串,但不同的项目($ item)可以具有相同的字符串。这意味着在一个foreach中,$ sender可以具有相同的值。现在我想将ids($ id)存储在数组或类似于每个$ sender的内容中。因此,如果$ sender是“abcde”3次,我想要一个包含3个项目的数组,并且让$ sender是“ztra”2次,我想要一个包含2个ID的数组。

所以我需要的是每个发件人的ID集合,我怎么能这样做?

谢谢!

2 个答案:

答案 0 :(得分:1)

$perSender = array();
foreach ($items as $item) {
    $perSender[$item->getSender()][] = $item->getId();
}

var_dump($perSender);

应该做的伎俩......

答案 1 :(得分:0)

如果您在每个数组中存储一个数组,那么您可以拥有每个项目所需的任何内容集合。

对于多个ID,这很简单:

$items = array(
   array( 'id' => array(1,2,3,4), 'otherStuff'=>'xyz' ),
   array( 'id' => array(5,6,7,8), 'otherStuff'=>'abc' ),
);