【问题标题】:How to construct sub arrays from a main array如何从主数组构造子数组
【发布时间】:2012-09-03 11:16:54
【问题描述】:

我想从多维数组中构造子 n 个数组,这取决于数据。例如:我有一个主数组

    Array
    (
    [0] => Array
        (
            [id] => 1
            [status] => -1
        )

    [1] => Array
        (
            [id] => 2
            [status] => 1
        )

    [2] => Array
        (
            [id] => 3
            [status] => 2
        )

    [3] => Array
        (
            [id] => 4
            [status] => 2
        )
    [4] => Array
        (
            [id] => 5
            [status] => 2
        )
)

我想从这个数组中获取 3 个数组,这取决于状态值的编号和类型 喜欢

  array{
    [0]=array(
        [status]=-1
        [count]=1

    )
    [1]=array(
        [status]=1
        [count]=1

    )
    [2]=array(
        [status]=2
        [count]=3

    )

}

提前致谢,

苏尼尔·库马尔 P

【问题讨论】:

  • 有什么尝试?您在使用循环时遇到的具体问题是什么?
  • [0]=array( 或 [0]=>array( ?? 错字??
  • @sunil 不可能为所有三个保留相同的键 0
  • 我正在寻找无限子数组结果的解决方案。我的意思是子数组的数量将等于状态类型。现在只有-1,1和2这3种状态类型。如果没有n种状态类型,那么我们需要得到n个具有状态类型字段和状态计数的子数组......

标签: php arrays multidimensional-array


【解决方案1】:

你的意思是这样的?:

$array = array(
    array('id' => 1, 'status' => -1),
    array('id' => 2, 'status' => 1),
    array('id' => 3, 'status' => 2),
    array('id' => 4, 'status' => 2),
    array('id' => 5, 'status' => 2)
);


$statuses = array();
foreach($array as $one){
    if(!isset($statuses[$one['status']])){ $statuses[$one['status']] = 0; }
    $statuses[$one['status']]++;
}

$newArray = array();
foreach($statuses as $key => $val){
    $newArray[] = array('status' => $key, 'count' => $val);
}

print_r($newArray);


/*Array
(
    [0] => Array
        (
            [status] => -1
            [count] => 1
        )

    [1] => Array
        (
            [status] => 1
            [count] => 1
        )

    [2] => Array
        (
            [status] => 2
            [count] => 3
        )

)*/

【讨论】:

  • 感谢您的宝贵时间。我的意思是我想为用户状态构建一个图表。所以我想获得每个用户状态的编号。主数组包含所有用户,我想获取每个用户的状态和计数。希望你现在明白了。提前致谢
  • 我所做的正是你想要的......我不明白还有什么?
猜你喜欢
  • 2016-08-30
  • 1970-01-01
  • 2017-08-27
  • 2022-01-07
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
相关资源
最近更新 更多