【问题标题】:Tri-mensional array looping三维数组循环
【发布时间】:2013-04-27 01:16:23
【问题描述】:

我真的被困在我的项目中的某个点上。我正在尝试将二维数组转换为三维数组。目前我在这一点上:

array (size=4)
  0 => 
    array (size=4)
      0 => string 'foo' (length=3)
      1 => string 'a' (length=0)
      2 => string 'b' (length=0)
      3 => string '0' (length=1)
  1 => 
    array (size=4)
      0 => string 'bar' (length=3)
      1 => string 'a' (length=0)
      2 => string 'b' (length=0)
      3 => string '1' (length=1)
  2 => 
    array (size=4)
      0 => string 'bas' (length=3)
      1 => string 'a' (length=0)
      2 => string 'b' (length=0)
      3 => string '1' (length=1)
  3 => 
    array (size=4)
      0 => string 'tas' (length=3)
      1 => string 'a' (length=0)
      2 => string 'b' (length=0)
      3 => string '0' (length=1)

我想做的是用 array[ ][3] 的键值创建一个新数组(我希望这有意义)所以是这样的:

array (size=2)
    0 => array (size=2)
        0 => array (size=2)
                   0 => string 'foo' (length=3)
                   1 => string 'a' (length=0)
                   2 => string 'b' (length=0)
        1 => array (size=2)
                   0 => string 'tas' (length=3)
                   1 => string 'a' (length=0)
                   2 => string 'b' (length=0)
    1 => array (size=2)
        0 => array (size=2)
                   0 => string 'bar' (length=3)
                   1 => string 'a' (length=0)
                   2 => string 'b' (length=0)
        1 => array (size=2)
                   0 => string 'bas' (length=3)
                   1 => string 'a' (length=0)
                   2 => string 'b' (length=0)

现在这是我能解释它的最好方式,我不确定我是否有任何意义,或者这是否可能,但如果有人能阐明这一点,我将不胜感激!

提前致谢,

托马斯

【问题讨论】:

    标签: php arrays multidimensional-array foreach


    【解决方案1】:
    $array = array();
    $array[] = array('foo','foo','foo',1);
    $array[] = array('a','a','a',1);
    $array[] = array('b','a','a',0);
    $array[] = array('c','a','a',0);
    $new_array =group_by_sub_array_key($array,3);
    print_r($new_array);
    
    
    function group_by_sub_array_key($array,$kn){
    $new_array = array();
    foreach($array AS $v){
        $key=$v[$kn];
        if(!array_key_exists($v[$kn],$new_array)){
        $new_array[$key]=array();
        }
        unset($v[$kn]);
        $new_array[$key][] = $v;
    }
    
    return $new_array;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      相关资源
      最近更新 更多