首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据数组值拆分数组

问根据数组值拆分数组
EN

Stack Overflow用户
提问于 2011-12-01 00:36:54
回答 3查看 677关注 0票数 1

我有一个充满动态<select>字段选项的数组,我希望根据每个“循环”中的某个值将其拆分成单独的数组。

基本上,我想要两个数组:一个包含与[subfirmdetailtype_id] = 14相关的数据,另一个包含[subfirmdetailtype] = 25。

任何帮助都将不胜感激!

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Open
                    [subfirmdetailtype_id] => 14
                )

        )

    [1] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Closed
                    [subfirmdetailtype_id] => 14
                )

        )

    [2] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Large Growth
                    [subfirmdetailtype_id] => 25
                )

        )

    [3] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Large Blend
                    [subfirmdetailtype_id] => 25
                )

        )

    [4] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Large Value
                    [subfirmdetailtype_id] => 25
                )

        )

    [5] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Mid Growth
                    [subfirmdetailtype_id] => 25
                )

        )

    [6] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Mid Blend
                    [subfirmdetailtype_id] => 25
                )

        )

    [7] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Small Growth
                    [subfirmdetailtype_id] => 25
                )

        )

    [8] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Small Blend
                    [subfirmdetailtype_id] => 25
                )

        )

    [9] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Small Value
                    [subfirmdetailtype_id] => 25
                )

        )

    [10] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => World Bond
                    [subfirmdetailtype_id] => 25
                )

        )

    [11] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Multisector Bond
                    [subfirmdetailtype_id] => 25
                )

        )

    [12] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Municipal Debt
                    [subfirmdetailtype_id] => 25
                )

        )

    [13] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Heigh Yield Muni
                    [subfirmdetailtype_id] => 25
                )

        )

    [14] => Array
        (
            [Subfirmdetailoption] => Array
                (
                    [option] => Heigh Yield
                    [subfirmdetailtype_id] => 25
                )

        )

)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-01 00:41:17

这将按照您想要的方式对数组进行分组:

代码语言:javascript
复制
$new_array = array();

foreach ($your_array as $array) {
  $new_array['subfirmdetailtype_id'][
     $array['Subfirmdetailoption']['subfirmdetailtype_id']
  ][] = $array['Subfirmdetailoption'];
}

稍后,您可以像这样访问组:

代码语言:javascript
复制
$new_array['subfirmdetailtype_id'][14];
$new_array['subfirmdetailtype_id'][15];

或者循环遍历这些分组的数组。

票数 0
EN

Stack Overflow用户

发布于 2011-12-01 00:41:08

只是遍历它们吗?像这样:

代码语言:javascript
复制
$allvalues = array();
foreach ($_POST['values'] as $key => $value) {
    $allvalues[$value['subfirmdetailtype_id']] = $value['option'];
}
票数 0
EN

Stack Overflow用户

发布于 2011-12-01 00:49:08

这就是了:

代码语言:javascript
复制
$myarr = Array(
    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Open",
                    "subfirmdetailtype_id" => 14
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Closed",
                    "subfirmdetailtype_id" => 14
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Large Growth",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Large Blend",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Large Value",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Mid Growth",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Mid Blend",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Small Growth",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Small Blend",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Small Value",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "World Bond",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Multisector Bond",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Municipal Debt",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Heigh Yield Muni",
                    "subfirmdetailtype_id" => 25
                )

        ),

    Array
        (
            "Subfirmdetailoption" => Array
                (
                    "option" => "Heigh Yield",
                    "subfirmdetailtype_id" => 25
                )

        )

);

foreach($myarr as $elem){
    if ($elem["Subfirmdetailoption"]["subfirmdetailtype_id"] == 14) {
        $id14[] = $elem["Subfirmdetailoption"]["option"];
    }
    if ($elem["Subfirmdetailoption"]["subfirmdetailtype_id"] == 25) {
        $id25[] = $elem["Subfirmdetailoption"]["option"];
    }
}
print_r($id14);
print_r($id25);
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8329500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档