How to get the minimum value from array row

笑着哭i 提交于 2019-12-20 05:00:48

问题


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

Below is my code:

<?php
$array = array(
 array(
  'id' => 1,
  '10xx' => 14,
  '11xx' => 32,
  '12xx' => 4
 ),

  array(
   'id' => 2,
  '10xx' => 13,
  '11xx' => 36,
  '12xx' => 41
 )
);



foreach($array as $item)
{
 $lowestKey = '';
 foreach($item as $key => $value)
 {


  if(strpos($key, 'xx') === 0)
  {

   if($lowestKey == '')
   {
    $lowestKey = $key;
   }
   else
   {
    if($value < $item[$lowestKey])
    {
     $lowestKey = $key;
    }
   }
  }
 }

 echo 'lowest for id ' . $item['id'] . ': ' . $item[$lowestKey] . "\n";
}
?>

回答1:


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.




回答2:


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);



回答3:


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);



回答4:


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

$lowest_keys = array();

foreach($array as $item)
{
     unset( $item[ 'id' ] );
     $lowest_keys[] = min( $item );
}



回答5:


$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;


来源:https://stackoverflow.com/questions/19222064/how-to-get-the-minimum-value-from-array-row

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!