Расщепление массива на основе значений массива - PullRequest
1 голос
/ 30 ноября 2011

У меня есть массив, полный динамических <select> опций поля, которые я хотел бы разбить на отдельные массивы на основе определенного значения в каждом "цикле".

По сути, я бы хотел два массива: один с данными, связанными с [subfirmdetailtype_id] = 14, и один с [subfirmdetailtype] = 25.

Любая помощь будет оценена!

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
                )

        )

)

Ответы [ 3 ]

0 голосов
/ 30 ноября 2011

Это позволит группировать массивы так, как вы хотите:

$new_array = array();

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

Позже вы можете получить доступ к таким группам:

$new_array['subfirmdetailtype_id'][14];
$new_array['subfirmdetailtype_id'][15];

Или просмотреть эти сгруппированные массивы.

0 голосов
/ 30 ноября 2011

Вот, пожалуйста:

$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 голосов
/ 30 ноября 2011

Просто перебрать их?Нравится:

$allvalues = array();
foreach ($_POST['values'] as $key => $value) {
    $allvalues[$value['subfirmdetailtype_id']] = $value['option'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...