【问题标题】:How to split array into two array如何将数组拆分为两个数组
【发布时间】:2012-10-20 14:18:59
【问题描述】:

我正在使用 PHP 语言处理数组。我通过旋转 for 循环得到了以下输出。 现在想把它分成两个不同的数组。任何人请指导我拆分成两个不同的数组......就像 a[0] = 810 和 b[0] = 44

此外,我试图在不更改值的情况下对其进行排序,例如排序最大值 a[0] = 840 & b[0] = 87

大批 ( [0] => 810/44 [1] => 0/280 [2] => 73/279 [3] => 0/278 [4] => 0/277 [5] => 0/276 [6] => 840/87 [7] => 0/275 [8] => 0/274 [9] => 0/273 [10] => 6/271 [11] => 0/272 [12] => 0/269 [13] => 3/267 [14] => 0/268 [15] => 3/259 [16] => 124/108 [17] => 82/239 [18] => 221/238 [19] => 30/160 [20] => 3/161 [21] => 65/168 [22] => 73/169 [23] => 0/170 [24] => 0/248 [25] => 192/226 [26] => 209/222 [27] => 80/223 [28] => 273/182 [29] => 79/183 [30] => 73/184 [31] => 73/185 [32] => 6/186 [33] => 73/187 [34] => 0/188 [35] => 48/270 [36] => 138/190 [37] => 370/191 [38] => 152/192 [39] => 12/200 [40] => 200/210 [41] => 0/213 [42] => 21/212 [43] => 124/214 [44] => 0/215 [45] => 0/216 [46] => 133/217 [47] => 6/260 [48] => 73/285 [49] => 73/284 [50] => 0/283 [51] => 73/286 [52] => 73/287 [53] => 0/288 [54] => 73/289 [55] => 0/290 [56] => 76/291 [57] => 76/292 [58] => 0/293 [59] => 0/294 [60] => 0/295 [61] => 0/296 [62] => 0/297 [63] => 3/298 [64] => 0/299 [65] => 0/300 [66] => 3/301 )

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    怎么样:

    $a = $b = array();
    
    foreach ($array as $key => $value) {
        list($a[$key], $b[$key]) = explode('/', $value, 2);
    }
    

    编辑:要处理之后的排序,您可以使用:

    array_multisort($a, SORT_DESC, SORT_NUMERIC, $b);
    

    【讨论】:

    • 是的,我只会用这个...但是在它分成两个数组之前..我们如何对其进行排序?
    • 工作得很好!嘿,请把你的 gmail 给我
    • @SandeepKamble 我的所有联系信息都可以在我的user profile 上找到。
    • 我在gmail上邀请你请加!
    【解决方案2】:

    你可以这样做:

    <?php 
    $a = array();
    $b = array();
    
    $orig_array = array('810/44','0/280');
    
    foreach($orig_array as $orig){
       $values = explode('/',$orig,2);
       $a[]=$values[0];
       $b[]=$values[1];
    }
    print_r($a);
    print_r($b);
    /*
    Array
    (
        [0] => 810
        [1] => 0
    )
    Array
    (
        [0] => 44
        [1] => 280
    )    
    */
    ?>
    

    【讨论】:

    • 谢谢,这会起作用,但在这种激情中排序不会起作用
    • @Sandeep Kamble 你希望它如何排序
    • 好的,首先我需要按最大值对其进行排序。不改变值,例如排序最大值 a[0] = 840 & b[0] = 87
    【解决方案3】:
      foreach($array1 as $a){
    
     $a = (string)$a
    
     $pos = strpos($a, '/')
    
      $first[] = substr($a, 0, $pos);
     $second[] = substr($a, $pos);
    
     }
    

    未测试。 . .但是你可以在这些线上尝试一些东西

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-13
      • 2015-05-17
      • 1970-01-01
      • 2011-08-16
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多