【问题标题】:How to manipulate php arrays [duplicate]如何操作php数组[重复]
【发布时间】:2016-03-20 22:55:57
【问题描述】:

如何操作 php 数组。我在下面有一个 $data 变量。

$data = Array
(
 [0] => Array
    (
        [id] => 1
        [capacity] => 900
        [category] => users
    )

 [1] => Array
    (
        [id] => 2
        [capacity] => 300
        [category] => users
    )
 [2] => Array
    (
        [id] => 3
        [capacity] => 900
        [category] => students
    )
 [3] => Array
    (
        [id] => 4
        [capacity] => 300
        [category] => students
    )
)

现在我想将数据与下面的相同类别进行分组。 .我对php不是很熟悉。有人可以帮助我如何实现这一目标。我应该使用什么功能。谢谢

Array
(
[users] => Array
    (
        [0] => Array
            (
              [id] => 1
              [capacity] => 900
              [category] => users
            )

        [1] => Array
            (
              [id] => 2
              [capacity] => 300
              [category] => users
            )
    ),
[students] => Array
    (
        [0] => Array
            (
              [id] => 1
              [capacity] => 900
              [category] => students
            )

        [1] => Array
            (
              [id] => 2
              [capacity] => 300
              [category] => students
            )
    )
)

【问题讨论】:

  • foreach ($data as $array) { $output[$array['category']][] = $array; } print_r($output); 应该可以解决问题。
  • 如果你使用var_export()而不是var_dump()来输出你的数组会更好,因为人们可以在他们的代码示例中重用输出。

标签: php


【解决方案1】:

只需遍历数组并根据category 字段的内容将其添加到新数组中:

$new = array();
foreach ($data as $val) {
    $new[$val['category']][] = $val;
}

【讨论】:

    【解决方案2】:

    这符合您的要求

    <?php
    
    $data = array(
        0 => array (
            "id" => 1,
            "capacity" => 900,
            "category" => "users"
        ),
        1 => array (
            "id" => 2,
            "capacity" => 300,
            "category" => "users"
        ),
        2 => array (
            "id" => 3,
            "capacity" => 900,
            "category" => "students"
        ),
        3 => array (
            "id" => 4,
            "capacity" => 300,
            "category" => "students"
        )
    );
    
    $groups = array();
    
    foreach ($data as $i) {
      if ($i['category'] === "students") {
        $groups['students'][] = $i;
      }
      else if ($i['category'] === "users") {
        $groups['users'][] = $i;
      }
    }
    
    echo "<pre>", print_r($groups), "</pre>";
    

    这是一个有效的演示 - http://codepad.viper-7.com/G4Br28

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 2013-12-31
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多