【问题标题】:Iterate over array and create collections of items in PHP?遍历数组并在 PHP 中创建项目集合?
【发布时间】:2012-03-30 13:52:58
【问题描述】:

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

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

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

那么我需要的是每个发件人的 id 集合,我该怎么做呢?

谢谢!

【问题讨论】:

    标签: php arrays collections


    【解决方案1】:
    $perSender = array();
    foreach ($items as $item) {
        $perSender[$item->getSender()][] = $item->getId();
    }
    
    var_dump($perSender);
    

    应该做的伎俩....

    【讨论】:

      【解决方案2】:

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

      在多个 ID 的情况下,这很简单:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-08
        • 1970-01-01
        • 2015-12-01
        • 2011-02-06
        • 2018-07-17
        • 1970-01-01
        相关资源
        最近更新 更多