$sql = "SELECT `department` , `item_budget` , `item_real` , `tuisuan` FROM `budgetcontrol` WHERE `project` = '可控费用合计'";
//echo $sql;$result = mysql_query($sql);if (mysql_num_rows($result) == 0)
die('Data Empty!');$i = 0;
while ($row = mysql_fetch_array($result)) 
{
// print_r($row); $ydata1[$i] = $row[1]+0;
// echo $ydata[$i].' ';

$ydata2[$i] = $row[2]+0;
// echo $ydata[$i].' '; $ydata3[$i] = $row[3]+0;
// echo $ydata[$i].' ';
$datax[$i] = $row[0];
$i++;
if($i==1)
{
str_replace("pu","xxx",$datax);
}
else if($i==2)
{
str_replace("ga","yyy",$datax);
}
else
{
echo $datax[$i].' ';
}
}现在$datax[$i]的值是 pu ga fzc en em it fi ma pe pp qa dd dt
我想把它替换成 xxx yyy fzc en em it fi ma pe pp qa dd dt 这种形式。

解决方案 »

  1.   

    不需要遍历,用array_search(值)找出该单元的key,再重新赋值array[key]替换就行
      

  2.   

    源程序是这样的:
    while ($row = mysql_fetch_array($result)) 
    {
    // print_r($row); $ydata1[$i] = $row[1]+0;
    // echo $ydata[$i].' ';

    $ydata2[$i] = $row[2]+0;
    // echo $ydata[$i].' '; $ydata3[$i] = $row[3]+0;
    // echo $ydata[$i].' ';
    $datax[$i] = $row[0];
    echo $datax[$i].' '; $i++;
    // }
    }
    用array_search?
      

  3.   


    $key = array_search("ga",$row);
    echo $key; //0
    $key2 = array_search("pu",$row);
    echo $key2; //0
      

  4.   

    sorry,读错了你的程序,你的循环遍历是用来取值的
    取值后再用这个
    $key = array_search("ga",$datax);
    echo $key; 
    $key2 = array_search("pu",$datax);
    echo $key2; 
      

  5.   

    $key = array_search("ga",$row[0]);
      

  6.   

    $key = array_search("ga",$datax);
    echo $key; //result 111111111111
    $key2 = array_search("pu",$datax);
    echo $key2; //result 0000000000000貌似也不对啊?这样吧,我把print_r(row)的数据贴出来:Array
    (
        [0] => pu
        [department] => pu
        [1] => 58.1
        [item_budget] => 58.1
        [2] => 48.3
        [item_real] => 48.3
        [3] => 65.2
        [tuisuan] => 65.2
    )
    Array
    (
        [0] => ga
        [department] => ga
        [1] => 669.4
        [item_budget] => 669.4
        [2] => 597.7
        [item_real] => 597.7
        [3] => 605.6
        [tuisuan] => 605.6
    )
    Array
    (
        [0] => fzc
        [department] => fzc
        [1] => 1298.2
        [item_budget] => 1298.2
        [2] => 864.4
        [item_real] => 864.4
        [3] => 1058.7
        [tuisuan] => 1058.7
    )
      

  7.   

    是的,我眼花了$sql = "SELECT `department` , `item_budget` , `item_real` , `tuisuan` FROM `budgetcontrol` WHERE `project` = '可控费用合计'";
    //echo $sql;
    $result = mysql_query($sql);
    if (mysql_num_rows($result) == 0)
        die('Data Empty!');
    $i = 0;
    while ($row = mysql_fetch_array($result)) 
    {
        $ydata1[$i] = $row[1]+0; //为什么要+0?
        $ydata2[$i] = $row[2]+0;
        $ydata3[$i] = $row[3]+0;
        $datax[$i] = $row[0];
        $i++;
    }
    $arr = array('pu' => 'xxx','ga' => 'yyy');
    while(list($key,$val) = each($datax)) {
    if (isset($arr[$val])) $datax[$key] = $arr["{$val}"];
    }
      

  8.   

    $key = array_search("ga",$datax);
    echo $key; //result 111111111111
    $key2 = array_search("pu",$datax);
    echo $key2; //result 0000000000000这key怎么这么奇怪?不会是写在循环内吧?while{...}
    //写在循环外
    $key = array_search("ga",$datax);
    $datax[$key]="yyy";
    $key2 = array_search("pu",$datax);
    $datax[$key2]="xxx";print_r($datax);