你用递归吧,随便写的仅供参考
// 自巳根据需求写,这里的$val可能是个数组看你的需求处理
这个传进去$b,处理完后$b会变成最后结果,无需返回值
另外你的问题逻辑混乱,你列舉的2跟3有什么关系麻烦关系说清楚
爱好编程,在工作中积累了比较丰富的经验愿与大家共同进步。
你foreach的第一行每次都把$array参数重新賦值, 当然收集不起来了:
你对这个回答的评价是
你用递归吧,随便写的仅供参考
// 自巳根据需求写,这里的$val可能是个数组看你的需求处理
这个传进去$b,处理完后$b会变成最后结果,无需返回值
另外你的问题逻辑混乱,你列舉的2跟3有什么关系麻烦关系说清楚
爱好编程,在工作中积累了比较丰富的经验愿与大家共同进步。
“foreach 语法结构提供了遍历数组的简單方式foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量或者未初始化的变量将发出错误信息。有两种语法:
第一种格式遍历给定的 array_expression 数组每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)
第二種格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key”
那么“第一种格式遍历给定的 array_expression 数组。每次循环中当前单元嘚值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。”是什么意思意思就是说用foreach来遍历数组,所操莋的是指定数组的一个拷贝而不是数组本身。就像有一个克隆的你别人对克隆的你不管怎么拳打脚踢,对你也是没有影响的
这样的修改方法修改的并不是$array本身,是修改它拷贝的一个数组虽然一样但不是$array.所以对$array没有影响。
那么要怎么做要这样做:
虽然$k和$v一样也是拷貝的,但拷贝的$k的值还是和原数组的$k的值是一样的所以这样就可以成功了。
还有一种比较高级的方法:可以很容易地通过在 $v 之前加上 & 来修改数组的元素此方法将以引用赋值而不是拷贝一个值。例如: