0

我有一个多维数组,例如:

Array
(
    [0] => Array
        (
            [quick_filter] => best_of_web
            [id] => 1136
        )

    [1] => Array
        (
            [quick_filter] => org_content
            [id] => 1139
        )

    [2] => Array
        (
            [quick_filter] => org_content
            [id] => 1141
        )

    [3] => Array
        (
            [quick_filter] => best_of_web
            [id] => 1143
        )

    [4] => Array
        (
            [quick_filter] => org_content
            [id] => 1144
        )

    [5] => Array
        (
            [quick_filter] => best_of_web
            [id] => 1145
        )

)

我想按这样的顺序排序

Array
(
    [best_of_web]
    Array
    (
        [id] => Array
            (
                [0] => 1136
                [1] => 1143
                [2] => 1145
            )
    )

    [org_content]
    Array
    (
        [id] => Array
            (
                [0] => 1139
                [1] => 1141
                [2] => 1144
            )
    )
)
4

3 回答 3

2

尝试以下操作:

$output_array = array();
foreach ($input_array as $item) {
    if (!isset($output_array[$item['quick_filter']]['id'])) {
        $output_array[$item['quick_filter']]['id'] = array();
    }
    $output_array[$item['quick_filter']]['id'][] = $item['id'];
}

替换$input_array为要排序的数组。

于 2013-06-13T12:57:08.917 回答
1

这个怎么样:

$merged = array();
foreach ($array as $index) $merged[$index['quick_filter']]['id'][] = $index['id'];
print_r($merged);
于 2013-06-13T13:02:45.720 回答
1

怎么样..

$resultArray = array();
foreach ($sourceArray as $key=>$value){

   if (!isset($resultArray[$value['quick_filter']]))

      /* set a new key to $resultArray */
      $resultArray[$value['quick_filter']]['id'] = array($value['id']);

   } else {

      /* add id to $resultArray*/
      $resultArray[$value['quick_filter']]['id'][] = $value['id'];

   }
}
于 2013-06-13T12:57:58.280 回答