我当时正在用php进行深层次的实现,我无法掌握第六行使用的语法。
1 function deepFlatten($items)
2 {
3 $result = [];
4 foreach ($items as $item) {
5 if (!is_array($item)) {
6 $result[] = $item;
7 } else {
8 $result = array_merge($result, deepFlatten($item));
9 }
10 }
11 return $result;
12 }
答案 0 :(得分:-1)
它只是将一个项目添加(“推”)到数组的末尾。类似于使用array_push
。
因此,$result[] = $item;
使数组$result
扩展了一个额外的项目。尽管搜索" [] "
并不总是那么简单,但实际上documentation on arrays on PHP.net中也描述了这种语法。
deepFlatten函数是遍历数组的递归函数。如果要调查的项本身是一个数组,则递归调用deepFlatten以返回该子数组的展平版本,然后将其合并到结果中。
由于使用的是普通推(用于简单项目)或array_merge(用于添加递归调用的数组结果),因此,如果使用array_push,则该函数的可读性可能会更高,尽管效果是相同的:>
function deepFlatten($items)
{
$result = [];
foreach ($items as $item) {
if (!is_array($item)) {
array_push($result, $item);
} else {
$result = array_merge($result, deepFlatten($item));
}
}
return $result;
}