Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多维混合关联/数字数组移位_Php_Multidimensional Array_Associative Array - Fatal编程技术网

Php 多维混合关联/数字数组移位

Php 多维混合关联/数字数组移位,php,multidimensional-array,associative-array,Php,Multidimensional Array,Associative Array,我有个问题需要尽快解决。如果我有时间重写整个脚本,我会的,但这就是程序员的生活,对吗?无论如何,我已经接管了一个项目,我有一个多维混合关联/数字数组,如下所示: Array ( [item1] => Array ( [dataset] => Array() [3] => Array() [7] => Array() ) [item2] => Arr

我有个问题需要尽快解决。如果我有时间重写整个脚本,我会的,但这就是程序员的生活,对吗?无论如何,我已经接管了一个项目,我有一个多维混合关联/数字数组,如下所示:

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()
        )
)

可能有助于实现这一点的几件事是,我知道,数据集索引将始终是项目x索引中的第一个索引,键将始终是“数据集”,其他索引将始终是数字索引。在php中是否有这样做的方法?这是一个混合阵列的事实让我很震惊。我无法重置数值索引并从0开始。它们的顺序是否改变并不重要,只是它们都位于“数据集”索引之前。也许这只是其中的一天非常感谢您的任何建议或意见。

通过以下内容循环:

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)
}
取消设置“dataset”元素并再次添加将导致在底部添加该元素


必须直接修改原始数组,而不是foreach中的$items,因为这些更改不会影响原始数组

太棒了…哇。那怎么样。我在各个方面都感到莫名其妙,显然我完全没有意识到这一点。谢谢你,伙计!