$employee[] = array("aili, John", "Programmer", 20);
$employee[] = array("Doe, Jane", "Programmer", 20);
$employee[] = array("Mann, Joe", "Manager", 35);
$employee[] = array("Smith, John", "CEO", 50);
$employee[] = array("Leeds, Al", "President", 100);
第07,09行$employee[$c]原为$employee[$c][1];

解决方案 »

  1.   

    00<?
    01$Name = "Mann";
    02$a = 0;
    03$b = 10;
    04while($a < $b)
    05{
    06$c = intval(($a + $b)/2);
    07if(strcmp($employee[$c], $Name) > 0)//strcmp是比较两个字符串的,不知道你输入的¥name是什么,我也不是很好判断。但感觉这个有问题
    08{$a = $c + 1;}
    09elseif(strcmp($employee[$c], $Name) < 0)
    10{$b = $c - 1;}
    11else
    12{$a = $c;$b = $c;}
    13}
    14?>就拿你给的这些分析吧,$employee[$c]再循环第一次开始的时候$c=5了!而你给出的叔祖里面,好像没有到5……不好判断了……