2017-11-30 3 views
-1

다른 열 값이 그룹화되어있는 2 차원 배열의 최소값을 얻으려고합니다.PHP 배열에서 최소값 가져 오기 열 값에 따라 달라집니다

array(3) { 
    [0]=> 
    array(3) { 
    ["cid"]=> 
    int(53) 
    ["cpr"]=> 
    int(243) 
    ["cty"]=> 
    string(1) "1" 
    } 
    [1]=> 
    array(3) { 
    ["cid"]=> 
    int(55) 
    ["cpr"]=> 
    float(270) 
    ["cty"]=> 
    string(1) "1" 
    } 
    [2]=> 
    array(3) { 
    ["cid"]=> 
    int(54) 
    ["cpr"]=> 
    float(367.65) 
    ["cty"]=> 
    string(1) "2" 
    } 
} 

는 어디서 cty=1 다음 cty=2 ....

+1

하나의 배열이 다른 배열보다 작은 지 여부를 결정하는 데 정확히 사용해야하는 값은 무엇입니까? 'cpr'? '시드'? 각 배열의 모든 값은? 또한 각 개별 cty 값에 대해 하나의 배열 ("최소값")을 가져 오시겠습니까? – salathe

+0

OP는 각'cty '에 대해 최소'cpr', 각'cty'에 대해 최소'cid '등을 원합니다. 특정 출력 형식이 필요하지 않으므로 언급 한 * 최소 배열 *은 공정한 출력으로 보입니다. –

+1

죄송합니다. 명확하게 말씀 드리겠습니다. 동일한 케이크가있는 셀에서 최소 cpr을 가져 오십시오 –

답변

-1

당신은 당신의 배열

+0

수정을 위해 @InzeNL에 감사드립니다. 영어로 몇 가지 문제가 있습니다. – Ciro

+0

왜 downvote입니까? 좋은 대답이 아닌가요? – Ciro

+0

이 질문에 대한 답변이 아닙니다. OP는 'cty'값이 동일한 서브 어레이에서 각 필드의 최소값을 요구합니다. 당신은 입력 배열을 정렬하는 중이며 이것은 OP의 질문과 아무런 관련이 없습니다. –

0

시도되는 $arrayPHP's uasort

function cmp($a, $b) { 
    $a = intval($a['cty']); 
    $b = intval($b['cty']); 

    if ($a == $b) { 
     return 0; 
    } 
    return ($a < $b) ? -1 : 1; 
} 

uasort($array, 'cmp'); 
echo $array[0]['cty']; 

를 사용하는 것이 모두의 분을 얻기 위해, 예를 들어 원하는 이 코드는 입력 배열을 사용하여 테스트되었습니다

$arr = array(array(
    "cid"=>'', 
    "cpr"=>'', 
    "cty"=>"1" 
), 
    array(
    "cid"=>'', 
    "cpr"=>'', 
    "cty"=>"1" 
), 
    array(
    "cid"=>'', 
    "cpr"=>367.65, 
    "cty"=> "2" 
)); 
echo "<pre>"; 
print_r($arr[array_search(min(array_column($arr, 'cty')),array_column($arr, 'cty'))]); 
0

죄송합니다. 동일한 cty의 셀에서 최소 cpr을 원합니다. 예를 들어, cty = 1, cty = 2의 모든 레코드에 대해 최소 cpr을 얻으려면 ...

관련 문제