2013-10-07 3 views
1

모든 열의 최소값을 얻으려고하면 열 이름에 "xx"가 포함됩니다. 당신은 그것을 위해 이미 기능이배열 행에서 최소값을 얻는 방법

<?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

"그러나 나는 할 수 없습니다"- _why_을? 대신 출력은 무엇입니까? 또한 http://php.net/manual/en/array.sorting.php를 살펴보십시오 – akluth

+0

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

답변

2

:

다음은 내 코드이 사용자의 요구에 더 잘 맞는 경우

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 

이 array_values으로 결합합니다.

0

내부에서 반복하는 대신 min() 함수를 사용하십시오.

$lowest_keys = array(); 

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

'id'가 배열에서 어떤 밴이 가장 낮은 키로 이어지는가 – MKroeders

+0

@Hendriq, 잘 발견, didnt 고지, 고마워. –

0
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); 
2
function _getNumber($array) { 
    return $array['id']; 
} 
$numbers = array_map('_getNumber', $array); 

또는

$numbers = array_map(function($array) { 
    return $array['id']; 
}, $array); 

echo $min = min($numbers); 
echo $max = max($numbers); 
0
$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;