PHP數組奇怪的有關問題

來源:互聯網
上載者:User
PHP數組奇怪的問題
如下:
PHP code
$arr1裡面是從資料庫裡取出來的資料,print_r出來如下:Array(    [0] => 30544    [1] => 30544    [2] => 30532    [3] => 30550    [4] => 30544    [5] => 30544    [6] => 30532    [7] => 30532    [8] => 30532    [9] => 30550    [10] => 30544    [11] => 30544    [12] => 30544    [13] => 30544    [14] => 30544    [15] => 30544    [16] => 30532    [17] => 30532    [18] => 30532    [19] => 30532)$arr2 = array('1','2','4','5');//我用同一個函數 max()取最大值,結果如下://arr1的結果,會報錯,但是可以取到資料30550A PHP Error was encounteredSeverity: WarningMessage: max() [function.max]: When only one parameter is given, it must be an arrayFilename: test.phpLine Number: 104//arr2正常,輸出5


以上,報錯是為什麼啊,怎麼解決啊。謝謝。


------解決方案--------------------
max() [function.max]: When only one parameter is given, it must be an array

max一個參數的時候,必須是個數組。
PHP code
logminMath 函數PHP Manual--------------------------------------------max(PHP 4, PHP 5)max — 找出最大值說明mixed max ( number $arg1 , number $arg2 )mixed max ( array $numbers [, array $... ] )max() 返回參數中數值最大的值。 如果僅有一個參數且為數組,max() 返回該數組中最大的值。如果第一個參數是整數、字串或浮點數,則至少需要兩個參數而 max() 會返回這些值中最大的一個。可以比較無限多個值。 Note: PHP 會將非數值的 string 當成 0,但如果這個正是最大的數值則仍然會返回一個字串。如果多個參數都求值為 0 且是最大值,max() 會返回其中數值的 0,如果參數中沒有數值的 0,則返回按字母表順序最大的字串。 Example #1 使用 max() 的例子 參見 min() 和 count()。 User Contributed Notessun at drupal dot org 03-Aug-2011 11:25 Note that max() throws a warning if the array is empty:So make sure your data isn't empty. php at rijkvanwel dot nl 12-Apr-2011 02:08 To get the largest key in an array: 'first', 1=> 'second', /* ... */ 99 => 'nth' );$max_key = max( array_keys( $array ) ); // 99?> Alex Stanhope 28-Oct-2010 03:00 If you want to test whether x lies within two bounds: = min($y1, $y2)) && ($x <= max($y1, $y2)) );     } //called by:    class::isInRange(10,12,2); //or    $this->isInRange(10,12,2); //or (drop static)    isInRange(10,12,2); //simple test function:     static function unit_isInRange() {         $output = array();         $inputlist[] = array(10, 12, 2, true);         $inputlist[] = array(13, 12, 2, false);         $inputlist[] = array(2, -2, 2, true);         $inputlist[] = array(2, -8, -2, false);         foreach($inputlist as $input) {             $output[] = array(                 'input' => array($input[0], $input[1], $input[2]),                 'output' => self::isInRange($input[0],$input[1],$input[2]),                 'expected' => $input[3],             );         }         return($output);     } ?> dan at coders dot co dot nz 22-May-2010 11:29 max() on undefined parameters does not assume the value is zero, it ignores it.  -2); // If $dimensions['right'] was never set, // we may expect it to be treated as zero, but print max($dimensions['left'], $dimensions['right']); // // Returns -2, not zero print max(0+$dimensions['left'], 0+$dimensions['right']); ?> would be a work-around, but it's probably tidier to ensure your values are set correctly first. (on PHP 5.2.11 anyway) Alex Rath 10-Apr-2010 11:27 Notice that whenever there is a Number in front of the String, it will be used for Comparison.But just if it is in front of the String grillen at abendstille dot at 02-Apr-2010 03:55 max only accepts not empty arrays. if you work a lot with numerical arrays and with max, this function may come in handy:  artem dot yagutyan at gmail dot com 27-Mar-2010 03:28 This Is Good Example: For max to min $val) {    if ($val == max($array)) return $key;    }}$array = array(10, 2, 5, 7, 4,15,32,8,41,25);$array_count=count($array);    for($i=1;$i<=$array_count;$i++){    $max_val[$i]=max_key($array);        $view=$array[$max_val[$i]];            unset($array[$max_val[$i]]);                    print $view."
"; // }/* OUTPUT41 // Max3225151087542 //Min*/?> marcini 11-May-2009 07:34 Note that max() can compare dates, so if you write something like this:you will get: 2009-03-15. ries at vantwisk dot nl 09-Nov-2008 06:36 I had several occasions that using max is a lot slower then using a if/then/else construct. Be sure to check this in your routines!Ries Marcus Zacco 29-Sep-2008 09:47 This code loops through seven arrays and finds the highest average value within those arrays - and changes the font color for it. Great for highlighting. The biggest take-away is this the row if($average[$i] == max($average)) The number_format just rounds the numbers to 0 decimal points. "; } else { echo "Value ".$num.": ".number_format($average[$i],0,'.','')." %
"; } } ?> ### OUTPUT Value 1: 52 % Value 2: 58 % Value 3: 56 % Value 4: 73 % Value 5: 77 % <- this 77 is highlighted in red Value 6: 71 % Value 7: 75 % harmor 21-Feb-2008 09:56 A way to bound a integer between two values is: which is the same as: $max) { $tmp = $max; } $y = $tmp; ?> So if you wanted to bound an integer between 1 and 12 for example: Input: '; $x = 1; echo bound($x, 1, 12).'
'; $x = 6; echo bound($x, 1, 12).'
'; $x = 12; echo bound($x, 1, 12).'
'; $x = 13; echo bound($x, 1, 12).'
'; ?> Output: 1 1 6 12 12 michaelangel0 at mail.com 04-Jul-2007 03:00 Matlab users and others may feel lonely without the double argument output from min and max functions. To have the INDEX of the highest value in an array, as well as the value itself, use the following, or a derivative: $maxvalue,"i"=>$maxindex); } ?> jeremi23 at gmail dot com 14-Jun-2007 03:09 max on a an array with key/values 5, 2=> 3); echo max($tmp); ?> this return 5, so the max is done on the values. johnmott59 at hotmail dot com 17-May-2007 12:35 To find the maximum value from a set of 1-dimensional arrays, do this: The inner max() functions operate on the arrays, the outer max compares the numeric results of the inner ones. johnphayes at gmail dot com 02-May-2006 09:27 Regarding boolean parameters in min() and max():(a) If any of your parameters is boolean, max and min will cast the rest of them to boolean to do the comparison.(b) true > false(c) However, max and min will return the actual parameter value that wins the comparison (not the cast).Here's some test cases to illustrate:1. max(true,100)=true2. max(true,0)=true3. max(100,true)=1004. max(false,100)=1005. max(100,false)=1006. min(true,100)=true7. min(true,0)=08. min(100,true)=1009. min(false,100)=false10. min(100,false)=false11. min(true,false)=false12. max(true,false)=true --------------------------------------------logminMath 函數PHP Manual
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.