fork download
  1. <?php
  2.  
  3. // your code goes here
  4. $arr = Array();
  5. $arr[19] = 0;
  6. $arr[20] = 0;
  7. $arr[21] = 60;
  8. $arr[22] = 30;
  9. $arr[23] = 10;
  10. $arr[24] = 10;
  11. $arr[25] = 90;
  12.  
  13. //$arr[22] = null; // nullを入れた場合
  14. //$arr[22] = "a"; // 文字を入れた場合
  15. //$arr[19] = PHP_INT_MAX; // いきなりオーバーフローしてる場合
  16. //$arr[99] = -99; // 欠番発生してる場合
  17. //$arr[18] = -70; // そもそも順番おかしい場合
  18. //print_r($arr);
  19.  
  20. $min_idx = Array();
  21. $min_value = PHP_INT_MAX;
  22.  
  23. while ($item = each($arr)) {
  24. if (!$item1 = each($arr)) break;
  25. if (!$item2 = each($arr)) break;
  26.  
  27. if (is_numeric($item["value"]) && is_numeric($item1["value"]) && is_numeric($item2["value"])) {
  28.  
  29. if ($min_value > $item["value"] + $item1["value"] + $item2["value"]) {
  30. $min_idx[0] = $item["key"];
  31. $min_idx[1] = $item1["key"];
  32. $min_idx[2] = $item2["key"];
  33.  
  34. $min_value = $item["value"] + $item1["value"] + $item2["value"];
  35. }
  36.  
  37. }
  38.  
  39. prev($arr); prev($arr);
  40. }
  41.  
  42. print_r($min_idx);
  43. print($min_value);
  44.  
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Array
(
    [0] => 22
    [1] => 23
    [2] => 24
)
50