$array=array("a"=>"aa","b"=>"bb");我现在知道了$array[b];
我怎么知道他的上一个键名和值是多少
先谢谢了

解决方案 »

  1.   

    foreach ($a as $k => $v) {
        print "\$a[$k] => $v.\n";
    }
      

  2.   

    foreach,或者each ,list看看手册,很有用的!
      

  3.   

    刚看了下手册,发现没有内置函数可以直接获得当前element前一个的key和value的函数,就自己写了
    一个小测试程序,希望对你有用
    <?php 
    $arr = array('a'=>'aa','b'=>'bb','c'=>'cc');
    /*
    $haystack:所在数组
    $search_by:  已知类型(可选值为key,value)
    $needle:已知值
    */
    function getPre($haystack,$search_by = 'key',$needle){
    $counter = count($haystack);
    $pre_key = null;
    $pre_value = null;
    foreach($haystack as $key=>$value){
    if($$search_by == $needle){
    echo  $pre_key ,'=>',$pre_value;
    break;
    }
    $pre_key = $key;
    $pre_value = $value;
    }
    }
    //已知value为bb
    getPre($arr,'value','bb');
    //已知key为b
    getPre($arr,'key','b');
    ?>
      

  4.   

    可惜的是不知道怎麼定位到某一key上,prev用不上$array=array("a"=>"aa","b"=>"bb"); 
    你知道了$array[b]的值是bb,想根据bb来得到上一个的key跟value,可以这样$str = 'bb';
    $array=array("a"=>"aa","b"=>"bb"); if( !in_array($str,$array) ):
        echo( '不在数组中' );
    else:
        $keys = array_key($array);
        $key1 = array_search($str,$array);
        echo( '当前值[' . $str . ']的key是' . $key1 );
        $key2 = array_search($key1,$keys);
        if( $key2 < 1 )
            echo( '已经是第一个,没有更前的了' );
        else
            echo( '前一个的key是' . ($key=$keys[$key2-1]) . ',值是' . $array[$key] );
    endif;
      

  5.   

    嘿嘿   寫掉了  應該是array_keys