How to get the minimum value from array row

前端 未结 6 1737
情话喂你
情话喂你 2021-01-25 01:15

I trying to get the minimum values from the any column contains \"xx\" in the column name.

Below is my code:



        
相关标签:
6条回答
  • 2021-01-25 01:57
    $array = array(
             array(
              'id' => 14,
              '10xx' => 14,
              '11xx' => 32,
              '12xx' => 4
             ),
    
              array(
               'id' => 2,
              '10xx' => 13,
              '11xx' => 36,
              '12xx' => 41
              )
            );
    
        $lowestKey = '';
    
        foreach($array as $arra){
            foreach ($arra as $key=>$value){
                if ($key == 'id'){
                    if(($value < $lowestKey )||( $lowestKey== '')){
                    $lowestKey = $value;
                    }
                }
    
    
            }
        }
       echo $lowestKey;
    
    0 讨论(0)
  • 2021-01-25 02:01
    function _getNumber($array) {
      return $array['id'];
    }
    $numbers = array_map('_getNumber', $array);
    

    OR

    $numbers = array_map(function($array) {
      return $array['id'];
    }, $array);
    
    echo $min = min($numbers);
    echo $max = max($numbers);
    
    0 讨论(0)
  • 2021-01-25 02:01

    You have a function already for it:

    http://php.net/manual/en/function.min.php

    echo min(2, 3, 1, 6, 7);  // 1
    echo min(array(2, 4, 5)); // 2
    
    echo min(0, 'hello');     // 0
    echo min('hello', 0);     // hello
    echo min('hello', -1);    // -1
    

    Combine it with array_values if this fits better your needs.

    0 讨论(0)
  • 2021-01-25 02:04
    function find_lowest($array){
            $new_array = array();
            foreach($array  as $key => $val ){
                if(is_array($val)){
                    $new_array[$key] = find_lowest($val);
                }else{
                    $new_array[$key] =  $val ;
                }
            }
            return min($new_array);
    
        }
        $array = array( array(  'id' => 1,
      '10xx' => 14,
      '11xx' => 32,
      '12xx' => 4
     ),
    
      array(
       'id' => 2,
      '10xx' => 13,
      '11xx' => 36,
      '12xx' => 41
     )
    );
     echo find_lowest($array);
    
    0 讨论(0)
  • 2021-01-25 02:17
    1. Iterate each row/subarray with a foreach() loop or array_walk().
    2. Extract and display the id (first element) value with array_shift().
    3. Call min() on the remaining values in the respective subarray to determine the lowest value.

    No conditional expressions. No unnecessary variables. Clean, concise, and effective.

    Code: (Demo)

    $array = [
        ['id' => 1, '10xx' => 14, '11xx' => 32, '12xx' => 4],
        ['id' => 2, '10xx' => 13, '11xx' => 36, '12xx' => 41]
    ];
    
    array_walk($array, function($row) {
        echo array_shift($row) , " : " , min($row) , "\n";
    });
    

    Output:

    1 : 4
    2 : 13
    
    0 讨论(0)
  • 2021-01-25 02:18

    Instead of looping again inside just use the min() function.

    $lowest_keys = array();
    
    foreach($array as $item)
    {
         unset( $item[ 'id' ] );
         $lowest_keys[] = min( $item );
    }
    
    0 讨论(0)
提交回复
热议问题