2009-05-18 50 views
2

我有一个问题,我需要早日修复而不是晚些时候修复。如果我有时间重写整个脚本,但是这是程序员的生活,对吧? anywho,我已经采取了一个项目,我有一个多维混合关联/数字数组,像这样:多维混合关联/数组阵列移位

Array 
(
    [item1] => Array 
     (
      [dataset] => Array() 
      [3] => Array() 
      [7] => Array() 
     ) 
    [item2] => Array 
     (
      [dataset] => Array() 
      [4] => Array() 
      [19] => Array() 
      [2] => Array() 
     ) 
) 

我需要做什么在每个itemX指标被转移数据集指数将导致最后的指标是:

Array 
(
    [item1] => Array 
     (
      [3] => Array() 
      [7] => Array() 
      [dataset] => Array() 
     ) 
    [item2] => Array 
     (
      [4] => Array() 
      [19] => Array() 
      [2] => Array() 
      [dataset] => Array() 
     ) 
) 

几件事情,可以帮助做到这一点的是,我知道数据集索引将永远是itemX索引中的第一个索引,并且键将始终为“数据集”,其他索引将始终为数字索引。反正有没有在PHP中做到这一点?事实上,这是一个混合阵列扔我。我不能让数字索引重置并从0开始,它们的顺序是否移位并不重要,只是它们都来自“数据集”索引之前。也许这只是那些日子之一....:\任何建议或意见,非常感谢。

回答

2

环路虽然这样所有元素:

foreach ($all_items as $key =>$items) { 
    $dataset = $items['dataset']; 
    unset($all_items[$key]['dataset']); // Removing it (from the top) 
    $all_items[$key]['dataset'] = $dataset; // Adding it again (at the bottom) 
} 

再次伸出,收藏的“数据集”元素和添加它会导致元件在底部加入。

直接修改原始数组非常重要,而不是foreach中的$ items,因为这些更改不会影响原始数组。

+0

真棒...哇。怎么回事。我在所有的维度中感到如此困惑,这些显然完全逃脱了我。谢啦! – ocergynohtna 2009-05-18 17:24:30