Перебирать массив и создавать коллекции элементов в PHP? - PullRequest
0 голосов
/ 30 марта 2012

У меня есть огромный массив, который я зацикливаю с помощью foreach.

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

$ sender может быть любой строкой, но разные элементы ($ item) могут иметь одну и ту же строку. Это означает, что в одном foreach $ sender может иметь одинаковое значение. Теперь я хочу сохранить идентификаторы ($ id) в массиве или что-то похожее для каждого $ sender. Поэтому, если $ sender был «abcde» 3 раза, я хочу массив из 3 элементов и, скажем, $ sender был «ztra» 2 раза, я также хочу иметь массив с 2 идентификаторами.

Так что мне нужен набор идентификаторов на отправителя, как я могу это сделать?

Спасибо!

Ответы [ 2 ]

1 голос
/ 30 марта 2012
$perSender = array();
foreach ($items as $item) {
    $perSender[$item->getSender()][] = $item->getId();
}

var_dump($perSender);

должен сделать трюк ....

0 голосов
/ 30 марта 2012

если вы храните массив в каждом массиве, то вы можете иметь коллекцию всего, что вы хотите для каждого элемента.

В случае нескольких идентификаторов это так же просто, как:

$items = array(
   array( 'id' => array(1,2,3,4), 'otherStuff'=>'xyz' ),
   array( 'id' => array(5,6,7,8), 'otherStuff'=>'abc' ),
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...