假设一个数组的输出:
$arr = str_split($dutstring);
print_r($arr);Array ( [0] => 0 [1] => 1 [2] => 0 [3] => 1 [4] => 1 [5] => 1 [6] => 1 [7] => 1 [8] => 1 [9] => 1 [10] => 1 [11] => 1 [12] => 1 [13] => 0 [14] => 0 [15] => 0 [16] => 1 [17] => 1 [18] => 1 [19] => 1 [20] => 1 [21] => 1 [22] => 1 [23] => 1 [24] => 1 [25] => 1 [26] => 1 [27] => 1 [28] => 1 [29] => 1 [30] => 1 [31] => 1 [32] => 1 [33] => 1 [34] => 1 [35] => 1 [36] => 0 [37] => 1 [38] => 1 [39] => 1 [40] => 1 [41] => 1 [42] => 1 [43] => 1 [44] => 0 [45] => 1 [46] => 1 [47] => 1 [48] => 1 [49] => 1 [50] => 1 [51] => 1 [52] => 1 [53] => 1 [54] => 1 [55] => 1 [56] => 1 [57] => 1 [58] => 1 [59] => 1 [60] => 1 [61] => 1 [62] => 1 [63] => 1 [64] => 1 )现在要求结果为0的数组的序号,怎么求?

解决方案 »

  1.   

    $str = '';
    foreach( $arr as $k=>$v )
    {
        if( $v == 0 )
        {
            $str .= $k."|";
        }
    }echo $str;
      

  2.   

    for($i=0;$i<count($arr);$i++)
    {
    $key = key($arr);
    if($arr[$key] == 0) echo "$key为0";
    next($arr);
    }
      

  3.   

    $arr = str_split($dutstring); 
    foreach ($arr as $key => $value)
    {
       if ($value = 0) echo 'key= '.$key.'<br/>';}
      

  4.   


    <?php
    foreach($arr as $key=>$value){
    echo $value?null:$key;
    }
    ?>
      

  5.   


    <?php
    // A
    $str = '213218309284098497324530981092839021';
    $result = str_word_count($str,2,'0');
    var_export($result);
    // B
    $strs = str_split($str);
    $result = array_uintersect($strs,array('0'),'strcmp');
    var_export($result);
    ?>
      

  6.   

    (上面我代码写错了,if里应该是$value == 0)
    是不是你的意思是值为0,并且序号大于1
    那在加个判断条件就可以了
    $arr = str_split($dutstring); 
    foreach ($arr as $key => $value)
    {
       if ($value == 0 && $key>1) echo 'key= '.$key.'<br/>';}
      

  7.   

    $str = array();
    foreach( $arr as $k=>$v )
    {
        $str[$k+1] = $v;
    }print_r( $str );
      

  8.   

    $arr = str_split($dutstring); 
    foreach ($arr as $key => $value) 

    if ($value == 0) 
    echo $key.'<br/>'; 
    } 这样得出的$k值是 75 83 85 89 这些是数组下标 
    我想得到的$k值是:76 84 86 90最好是直接得到$k的值为以上结果,而不是echo 出来$k+'1'的值。
      

  9.   

    $dutstring = '01011111111110001111111111111111111101111111011111111111111111111';
    $arr = str_split($dutstring); $out = array_intersect($arr, array('0'));
    print_r($out);