Array
(
    [0] => 36
    [1] => 00868
    [2] => 123456
    [3] => KAETC56
    [4] => 2011-07-11 14:47:44
)
Array
(
    [0] => 37
    [1] => 00868
    [2] => 123456
    [3] => KAETC56
    [4] => 2011-07-11 14:47:49
)像这样的多个一维数组,我要取得每个数组的值,是不是要把数组转化为二维数组?怎么求某项值在数组中的个数?图例为[2]这项。

解决方案 »

  1.   

    那就2维吧  用array_count_values来循环统计你要的次数吧  可以做个函数  
      

  2.   

    array_count_values()  统计数组中所有的值出现的次数
      

  3.   

    那怎样将
    Array
    (
      [0] => 36
      [1] => 00868
      [2] => 123456
      [3] => KAETC56
      [4] => 2011-07-11 14:47:44
    )
    Array
    (
      [0] => 37
      [1] => 00868
      [2] => 123456
      [3] => KAETC56
      [4] => 2011-07-11 14:47:49
    )
    放到一个二维数组中,像这样:
    Array(
           Array
          (
            [0] => 36
            [1] => 00868
            [2] => 123456
            [3] => KAETC56
            [4] => 2011-07-11 14:47:44
           )
           Array
          (
            [0] => 37
            [1] => 00868
            [2] => 123456
            [3] => KAETC56
            [4] => 2011-07-11 14:47:49
           )
    )
      

  4.   


    $a = array("a");
    $b = array("b");
    $c = array();
    array_push($c,$a,$b);
    print_r($c);是不是要这样的效果?
    array_count_values如果没有记错的话 是不能算二维数组的function array_count_values_multidim($a,$out=false) { 
      if ($out===false) $out=array(); 
      if (is_array($a)) { 
       foreach($a as $e) 
         $out=array_count_values_multidim($e,$out); 
      } 
      else { 
       if (array_key_exists($a,$out)) 
         $out[$a]++; 
       else 
         $out[$a]=1; 
      } 
      return $out; 
    } 手册上的一个例子 可以算二维
      

  5.   

    $a = array(
      0 => 36,
      1 => '00868',
      2 => '123456',
      3 => 'KAETC56',
      4 => '2011-07-11 14:47:44',
    );
    $b = array(
      0 => 37,
      1 => '00868',
      2 => '123456',
      3 => 'KAETC56',
      4 => '2011-07-11 14:47:49',
    );
    $k = 2;
    $t = $a[$k];
    $n = 0;
    foreach(array($a, $b) as $v) {
      if($v[$k] == $t) $n++;
    }
    echo $n;//2
      

  6.   


    求N的结果是正确的,但是数组是从循环中获得的。while($rows = mysql_fetch_array($result,MYSQL_NUM))
    {
        print_r($rows);
    }结果如下:
    Array
    (
        [0] => 36
        [1] => 00868
        [2] => 110711
        [3] => KAETC56-600NC1161656600N31036 KA62A0001
        [4] => 2011-07-11 14:47:44
    )
    Array
    (
        [0] => 37
        [1] => 00868
        [2] => 110711
        [3] => KAETC56-600NC1161656600N31036 KA62A0001
        [4] => 2011-07-11 14:47:49
    )如果用array()函数结果是这样:Array
    (
        [0] => Array
            (
                [0] => 36
                [1] => 00868
                [2] => 110711
                [3] => KAETC56-600NC1161656600N31036 KA62A0001
                [4] => 2011-07-11 14:47:44
            ))
    Array
    (
        [0] => Array
            (
                [0] => 37
                [1] => 00868
                [2] => 110711
                [3] => KAETC56-600NC1161656600N31036 KA62A0001
                [4] => 2011-07-11 14:47:49
            ))
      

  7.   

    是否可以这样理解:
    你的数据是从数据库中取出的,在读取的过程中想统计下标2元素的值出现的次数while($row = mysql_fetch_array($rs)) {
      $cnt[$row[2]]++;
    }
    print_r($cnt);
      

  8.   

    如果是单独计算下标2元素的次数,这样没问题。但是我还要取[3] => KAETC56-600NC1161656600N31036 KA62A0001 这里面的值。如果按照这样:while($rows = mysql_fetch_array($result,MYSQL_NUM))
    {
    $row[$rows[2]]++;
    $row[$rows[3]]++;
    print_r($row);
    }得到结果:
    Array
    (
        [110711] => 1
        [KAETC56-600NC1161656600N31036 KA62A0001] => 1
    )
    Array
    (
        [110711] => 2
        [KAETC56-600NC1161656600N31036 KA62A0001] => 2
    )
      

  9.   

    或者说我怎么求得key [KAETC56-600NC1161656600N31036 KA62A0001] 的值。foreach($row as $key => $value)
    {
       echo $key.'<br />';//这里只能计算出所有循环key的值。
    }
      

  10.   

    其实我只想
    while($rows = mysql_fetch_array($result,MYSQL_NUM))
    {
        print_r($rows);
    }
    结果:
    Array
    (
        [0] => 36
        [1] => 00868
        [2] => 110711
        [3] => KAETC56-600NC1161656600N31036 KA62A0001
        [4] => 2011-07-11 14:47:44
    )
    Array
    (
        [0] => 37
        [1] => 00868
        [2] => 110711
        [3] => KAETC56-600NC1161656600N31036 KA62A0001
        [4] => 2011-07-11 14:47:49
    )得到这样的结果:
    Array
    (
        [0] => Array
            (
                [0] => 36
                [1] => 00868
                [2] => 123456
                [3] => KAETC56
                [4] => 2011-07-11 14:47:44
            )    [1] => Array
            (
                [0] => 37
                [1] => 00868
                [2] => 123456
                [3] => KAETC56
                [4] => 2011-07-11 14:47:49
            ))
      

  11.   

    本帖最后由 xuzuning 于 2011-07-12 09:29:22 编辑
      

  12.   

    你不要while循环,直接$rows = mysql_fetch_array($result,MYSQL_NUM);print_r($rows);不就是那个二维数组了。
      

  13.   

    兄弟,你确定?不过我这里显示是一维数组啊。while只是针对的一个循环而已。