【问题标题】:how to sort array in a different order如何以不同的顺序对数组进行排序
【发布时间】:2013-09-03 12:30:24
【问题描述】:

我有一个看起来像这样的数组。

Array
(

[0] => Array
    (
        [cartId] => 667
        [isPack] => 1
    )

[1] => Array
    (
        [cartId] => 668
        [isPack] => 1
    )

[2] => Array
    (
        [cartId] => 672
        [isPack] => 2
    )

[3] => Array
    (
        [cartId] => 673
        [isPack] => 2
    )

)

我想通过 isPack 元素创建一个数组,它应该看起来像这样。

Array (

[1] => Array
    (

       [0] => Array
            (
                [cartId] => 667
            )

        [1] => Array
            (
                [cartId] => 668
            )

    )
  [2] => Array
    (
        [0] => Array
            (
                [cartId] => 672
            )

        [1] => Array
            (
                [cartId] => 673
            )
    )  
 )

数组二是两个数组,其中isPack是数组键,其他信息属于它的子数组。

我该怎么做? 在此先感谢:)

【问题讨论】:

  • 只需在您的阵列上执行foreach 并填充其他阵列。

标签: php arrays sorting search


【解决方案1】:
  $new=array();
     $arr = array( array('cartId' => 667,'isPack' => 1),array('cartId' => 668,'isPack' => 1),array('cartId' => 672,'isPack' => 2),array('cartId' => 673,'isPack' => 2));
     for($i=0;$i<count($arr);$i++) {
          $l = $arr[$i]['isPack'];
     $new[$l][]['catid']= $arr[$i]['cartId'];
     }
     print_r($new);

和输出:-

Array
(
    [1] => Array
        (
            [0] => Array
                (
                    [catid] => 667
                )

            [1] => Array
                (
                    [catid] => 668
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [catid] => 672
                )

            [1] => Array
                (
                    [catid] => 673
                )

        )

)

【讨论】:

    【解决方案2】:

    尝试:

    $input  = array( /* your data*/ );
    $output = array();
    
    foreach ( $input as $data ) {
      $isPack = $data['isPack'];
      $cartId = $data['cartId'];
    
      if ( !isset($output[$isPack]) ) {
        $output[$isPack] = array();
      }
      $output[$isPack][] = array(
        'cartId' => $cartId
      );
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多