此问题已在此处有答案:
Extract leaf nodes of multi-dimensional array in PHP(6个回答)
How to Flatten a Multidimensional Array?(31个回答)
Remove first levels of identifier in array [duplicate](7个回答)
昨天关门了。
我把数据存储在一个PHP数组中,如下所示:
(
[category1] => Array
(
[0] => Array
(
[name] => Test1
)
[1] => Array
(
[name] => Test2
)
[2] => Array
(
[name] => Test3
)
)
[category2] => Array
(
[0] => Array
(
[name] => Test4
)
)
[category3] => Array
(
[0] => Array
(
[name] => Test5
)
)
)
我可以使用什么函数来修改这个数组,以删除category 1/2/3的第一个数组键,然后重新排序数字数组键,因此得到的数组看起来像这样:
Array
(
[0] => Array
(
[name] => Test1
)
[1] => Array
(
[name] => Test2
)
[2] => Array
(
[name] => Test3
)
[3] => Array
(
[name] => Test4
)
[4] => Array
(
[name] => Test5
)
)
我试过array_shift
,但它只返回3个数据,没有考虑其他类别:
[0] => Array
(
[name] => Test1
)
[1] => Array
(
[name] => Test2
)
[2] => Array
(
[name] => Test3
)
3条答案
按热度按时间pvcm50d11#
尝试
array_merge()
函数和array_values()
如下:ou6hu8tu2#
首先遍历数组并创建一个像这样的新数组
你也可以使用array_reduce代替上面的循环。
然后重新排列新阵列
4xrmg8kj3#
输入数组只包含叶元素,这些元素是具有一个键值对的数组,并且其中每个元素的键都是相同的(这意味着结果数组中不需要这些键)。
如果这真的是输入,这种方法也会起作用(否则大卫特奥的答案是要走的路):
输出量: