【问题标题】:find the minimum and maximum value in array group php在数组组php中找到最小值和最大值
【发布时间】:2018-07-04 07:25:35
【问题描述】:
Array
(
    [0] => Array
        (
            [package] => LTE_15AGB
            [value] => Array
                (
                    [0] => 52690
                    [1] => 24700
                    [2] => 43972
                    [3] => 506417
                    [4] => 488125
                    [5] => 935918
                    [6] => 1322816
                    [7] => 1189040
                    [8] => 2805279
                    [9] => 2764825
                    [10] => 1688294
                    [11] => 1228812
                    [12] => 2232345
                    [13] => 3356143
                    [14] => 1193213
                    [15] => 167589
                    [16] => 1373104
                    [17] => 691411
                    [18] => 1398647
                    [19] => 5
                )

        )

    [1] => Array
        (
            [package] => LTE_15AGB_NT
            [value] => Array
                (
                    [0] => 953370
                    [1] => 151168
                    [2] => 37605
                    [3] => 428769
                    [4] => 755222
                    [5] => 1146719
                    [6] => 494289
                    [7] => 889002
                    [8] => 307200
                    [9] => 127972
                    [10] => 2764815
                    [11] => 1426224
                    [12] => 262669
                    [13] => 648757
                    [14] => 1485
                    [15] => 1202
                    [16] => 998
                    [17] => 1
                )

        )

)

这是我尝试过的:

$tmp = array();
foreach($arrayName as $arg){ 
    $tmp[$arg['package']][] = $arg['value']; 
}

$output = array();
foreach($tmp as $type => $labels){
    $output[] = array( 'package' => $type, 'value' => $labels, ); 
}

print_r(($output))

【问题讨论】:

  • 你的代码在哪里? StackOverflow 不是代码编写服务。
  • 是的,先生,我无法正确添加
  • 我的代码是 $tmp = array(); foreach($arrayName as $arg){ $tmp[$arg['package']][] = $arg['value']; } $输出=数组(); foreach($tmp as $type => $labels){ $output[] = array( 'package' => $type, 'value' => $labels, ); } print_r(($output));
  • 请在您的问题中添加您的代码。
  • 我想找到每个包组的最小值和最大值..请先生帮帮我

标签: php arrays max minimum array-reduce


【解决方案1】:

试试这个:

foreach ($your_array as $subarr) {
    echo $subarr[package]." minimum = ";
    echo min($subarr[value])." and maximum = ";
    echo max($subarr[value])."<br>";
 }

这将输出每个包名称以及最小值和最大值。

【讨论】:

    【解决方案2】:

    只需使用min()max() 函数。

    您的代码

    foreach(array_column($array, 'value') as $key => $values){
        echo PHP_EOL . 'SubArray '. $key .' min = '. min($values) . ' and max value = '.  max($values);
    }
    

    输出是

    子数组 0 最小值 = 5,最大值 = 3356143
    子数组 1 最小值 = 1,最大值 = 2764815

    参考资料:

    现场演示: https://eval.in/941702

    【讨论】:

      【解决方案3】:

      @Arebhy Sri,你应该在 php 中搜索数组,这就像基本问题。

      $finalArray = [];    
      foreach ($mainArr as  $subArr){
              $array = $subArr['value'];
              sort($array);
      
              $tempArray['minimum'] = reset($array);
              $tempArray['maximum'] = end($array);
              $tempArray['package'] = $subArr['package'];
              $finalArray[] = $tempArray;
          }
      
      
      
      $finalArray //you can use
      

      我正在使用简单的foreach 和数组reset()end() 的两个函数。

      reset():返回第一个数组元素的值,如果数组为空,则返回 FALSE。

      end():返回最后一个元素的值,如果是空数组则返回 FALSE。

      【讨论】:

      • 谢谢先生..但我想找到每个包组的最小值和最大值..请帮我先生 [package]=>LTE_15AGB minimum=xxxx maximum=xxxx [package]=> LTE_5AGBNT 最小值=xxxx 最大值=xxxx 抱歉麻烦了.. 我是新手,这是我尝试过的代码 $resultnew = array_reduce($output, function($memo, $el) { if($memo[0]
      猜你喜欢
      • 2018-05-03
      • 1970-01-01
      • 2012-02-11
      • 2021-02-10
      • 2018-03-14
      • 2017-08-18
      • 1970-01-01
      • 2021-09-15
      相关资源
      最近更新 更多