我有一个问题,我需要尽早修复。如果我有时间重写整个脚本我会,但这是程序员的生活,对吧? 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()
)
)
可能有助于实现这一目标的一些事情是,我 知道 数据集索引将始终是中的第一个索引strong> itemX 索引,键将始终为'dataset',其他键将始终为数字索引。无论如何在PHP中这样做?它是一个混合阵列的事实让我失望。我不能让数字索引重置并从0开始。如果它们的顺序被移动并不重要,只是它们都在'数据集'索引之前。也许这只是其中的一天......:\非常感谢任何建议或意见。
答案 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)
}
取消设置'dataset'元素并再次添加它将导致元素添加到底部。
直接修改原始数组非常重要,而不是foreach中的$ items,因为这些更改不会影响原始数组。