$arr = [
[
'id' => 123,
'test' => ['id' => 2, 'title' => "测试",'test3'=>['list'=>123]]
]
];
$field = "test.test3.list";
foreach($arr as $k=>$v){
$result = getValueFromNestedArray($v, $field);
echo "最终的值:" . $result;//输出123
}
function getValueFromNestedArray($array, $field) {
$keys = explode('.', $field);
$currentKey = array_shift($keys);
if (isset($array[$currentKey])) {
if (count($keys) == 0) {
return $array[$currentKey];
} else {
return getValueFromNestedArray($array[$currentKey], implode('.', $keys));
}
} else {
// 字段不存在的错误处理
echo "字段 $currentKey 不存在!";
return null;
}
}
/**
以上代码都是chatgpt输出的
在上面的代码中,我们定义了一个名为getValueFromNestedArray()的递归函数,用于从多维数组中获取指定字段的值。该函数接受两个参数:原始数组和需要获取的字段。
首先,我们将字段字符串$field使用.进行拆分,得到一个字段层级数组$keys。然后,我们通过array_shift()函数获取当前字段层级$currentKey。
接着,我们检查当前层级的字段是否存在于数组中。如果存在,我们判断是否还有剩余的字段层级。如果没有剩余的字段层级,说明已经到达最终的值,我们返回当前层级对应的值。如果还有剩余的字段层级,说明需要继续递归地进入下一层级的数组中。
如果当前层级的字段不存在于数组中,则执行相应的错误处理。
这样,通过调用getValueFromNestedArray()函数,你可以灵活地获取多维数组中指定字段的值
**/
标签:字符,层级,getValueFromNestedArray,field,数组,多维,array,php,currentKey From: https://www.cnblogs.com/jsyphp/p/17617577.html