【发布时间】:2021-12-08 08:38:05
【问题描述】:
我正在尝试创建一个函数,它将新值分配给多维数组中的特定索引:
-
我有这样的数组:
数据[i]['checkin'];
数据[i]['结帐'];
数据[i]['content'][x]['price'];
数据[i]['content'][x]['profit'];
数据[i]['content'][x]['exchangerate'];
我的函数的第一个参数将获取数组,第二个参数将获取我要重新定义的索引:
例如:
function defineNewValues(&$arr, $keys) {
//logic
}
调用函数:
defineNewValues($myArray, [
'data.*.content.*.price' => 0,
'data.*.content.*.profit => 0,
]);
我相信递归是解决我的问题的关键, 但是真的不知道怎么解决。
谢谢。
【问题讨论】:
-
使用这样的 $keys 数组,您将不得不编写一个解析器来处理它并将其转换为一些可以运行的实际代码。当几个简单的 foreach 循环很容易完成时,你真的需要吗
-
我希望该函数具有通用性,并且可以解决许多情况下不同结构的数组,关于格式.. 我想用点分隔符来分解字符串
-
那你还是开始写吧
-
我尝试了超过 3 天没有成功..
-
对于重复的解决方案,只需使用字符串路径,对于新的动态元素,使用
..而不是.*.。作为'data..content..price'
标签: php arrays multidimensional-array