douti19680318 2017-04-12 11:51 采纳率: 0%
浏览 84
已采纳

按值/键对数组排序 - 混合字符串和数值PHP

I need to sort an array. Both values and keys are the same and are strings. Basically, array looks similar to this:

 $test = array(
      '1' => '1',
      '2' => '2',
      '1.5' => '1.5',
      '3' => '3',
      '4' => '4',
      '3.5' => '3.5',
      '2XS' => '2XS',
      '2XL' => '2XL',
      'XXL' => 'XXL',
    );

Expected Output:

 Array
 (
     [0] => 1
     [1] => 1.5
     [2] => 2
     [5] => 3
     [6] => 3.5
     [7] => 4
     [3] => 2XL
     [4] => 2XS
     [8] => XXL
 )

Any ideas?

  • 写回答

3条回答 默认 最新

  • dsfo22654 2017-04-12 11:58
    关注

    PHP code demo

    <?php 
    $test = array(
          '1' => '1',
          '2' => '2',
          '1.5' => '1.5',
          '3' => '3',
          '4' => '4',
          '3.5' => '3.5',
          '2XS' => '2XS',
          '2XL' => '2XL',
          'XXL' => 'XXL',
        );
    $numericArray=array();
    $stringsArray=array();
    array_map(function($value) use (&$numericArray,&$stringsArray) {
            if(is_numeric($value))
            {
                $numericArray[]=$value;//Here we are putting numeric values
            }
            else
            {
                $stringsArray[]=$value;//Here we are putting string values
            }
    
    }, $test);
    sort($numericArray,SORT_NUMERIC);//sorting on numeric basis
    sort($stringsArray,SORT_REGULAR);//sorting on string basis
    $result=array_merge($numericArray,$stringsArray);//merging both of them
    print_r($result);
    

    Output:

    Array
    (
        [0] => 1
        [1] => 1.5
        [2] => 2
        [3] => 3
        [4] => 3.5
        [5] => 4
        [6] => 2XL
        [7] => 2XS
        [8] => XXL
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作