PHP中无需foreach循环获取三层嵌套内的rule数组是否可行?
不用foreach获取嵌套数组中
rule值的可行方案 当然可行!你完全不需要借助foreach循环,直接通过数组层级索引就能精准定位到rule数组的值,毕竟你的数组结构是固定的三层嵌套,索引位置明确。
先把你的数组结构用代码块清晰展示下:
$array = Array ( [camp] => 1523270715437137241 [seg] => Array ( [0] => Array ( [id] => 1524043028577447661 [ben] => 10000 [rule] => Array ( [0] => Array ( [id] => 1524050160515158364 [logic] => #3 and # 4 ) ) ) ) );
直接通过以下代码就能拿到rule数组:
$ruleArray = $array['seg'][0]['rule'];
如果还想进一步拿到rule里的具体元素,比如logic的值,也可以继续层级访问:
$ruleLogic = $array['seg'][0]['rule'][0]['logic']; // 输出结果就是 #3 and # 4
需要注意的是,这种方法适用于你确定seg数组里一定有索引为0的元素,且该元素下必然存在rule键的情况。如果数组结构可能有变动(比如seg里有多个元素但你需要全部rule),那不用foreach的话可能需要用数组函数(比如array_column),但针对你当前给出的固定结构,直接索引访问是最简单高效的方式。
内容的提问来源于stack exchange,提问作者Shiromi
相关产品推荐
相关产品推荐

