【问题标题】:Need to divide/manage array需要划分/管理数组
【发布时间】:2014-05-06 11:45:48
【问题描述】:

我需要将二维数组更改为三维数组,而不管数组的长度如何:

我有以下几点:

array(89) { 
    [0]=> array(5) { [0]=>"aaa" [1]=>"bbb"[2]=>"ccc" [3]=>"ddd" [4]=>"eee" } 
    [1]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" }
    [2]=> array(5) { [0]=>"aaa" [1]=>"bbb"[2]=>"ccc" [3]=>"ddd" [4]=>"eee" } 
    [3]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" }
    [4]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" }
...}

我需要

array (?) {   
    [0]=> array(2) { 
        [0]=> array(5) { [0]=>"aaa" [1]=>"bbb"[2]=>"ccc" [3]=>"ddd" [4]=>"eee" }   
        [1]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" }}
    [1]=> array(3) { 
        [0]=> array(5) { [0]=>"aaa" [1]=>"bbb"[2]=>"ccc" [3]=>"ddd" [4]=>"eee" }  
        [1]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" }
        [2]=> array(5) { [0]=>"blablabla" [1]=>"blablabla" [2]=>"blablabla" [3]=>"blablabla" [4]=>"blablabla" }}
    ...}

'blablabla' 可以是任意长度和格式,但 'aaa', 'bbb', ... 在所有数组中都是相同的。需要以'aaa'开头的数组

【问题讨论】:

  • 我们能看到构建二维数组的代码吗? (除此之外:请不要全小写或全大写 - 正如您从两个问题中看到的那样,人们会对此进行编辑)。
  • 多行的键相同。不可能
  • 我没有使用相同的键
  • @big.data 你不是,但你需要你的数据是:[0]=> array(2) {[0]=> array(5) { 0 键在同一级别上重复。
  • @i-can-has-cheezburger 我还是不明白...在同一级别重复键的位置

标签: php arrays divide


【解决方案1】:

这其实很简单,你只需要一个foreach()

$i=-1; //this will increment on first loop so we set it to -1
$key_to_find = $array[0][0]; //storing the 'aaa' value
$result = array();       
foreach($array as $key=>$val){
    //checking if 'aaa' equals to the first value, if yes increment $i to 0
    ($val[0]==$key_to_find)?$i++:'';
    //save the whole array bunch
    $result[$i][] = $val;
}

print_r($result);

DEMO

【讨论】:

  • @big.data 不客气,如果有帮助,请在左侧打勾,将此问题标记为已解决^-^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-23
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
相关资源
最近更新 更多