我正在尝试搜索复杂的JSON数组,该数组是从SOAP XML响应转换为特定值的。密钥确实是通用的。
["configurableFields"]=>
array(1) {
["configurableField"]=>
array(6) {
[0]=>
array(3) {
["label"]=>
string(15) "Job Information"
["value"]=>
string(15) "Job Information"
["criteria"]=>
array(1) {
["criterion"]=>
array(3) {
[0]=>
array(2) {
["label"]=>
string(19) "SAP Position Number"
["value"]=>
string(3) "TBC"
}
[1]=>
array(2) {
["label"]=>
string(20) "Assignment JD Number"
["value"]=>
string(6) "AG111111"
}
[2]=>
array(2) {
["label"]=>
string(20) "Generic JD Reference"
["value"]=>
string(5) "C11111"
}
}
}
}
[1]=>
array(3) {
["label"]=>
string(16) "Hours and salary"
["value"]=>
string(5) "Hours"
["criteria"]=>
array(1) {
["criterion"]=>
array(3) {
[0]=>
array(2) {
["label"]=>
string(14) "hours per week"
["value"]=>
string(2) "37"
}
[1]=>
array(2) {
["label"]=>
string(14) "weeks per year"
["value"]=>
string(2) "52"
}
[2]=>
array(2) {
["label"]=>
string(6) "Salary"
["value"]=>
string(11) "£29,636 pa"
}
}
}
}
}
}
在上面的示例中,如何在数组中搜索标签“ Salary”,然后获取值字符串“£29,636 pa”。
很抱歉,我缺少简单的东西。我没有任何起始代码,因为我只是通过在foreach循环中将其作为目标来打印值。
编辑:如果某些数据丢失,则忘记添加值在数组中的位置可以更改。
您可以通过label
对该数组进行索引,因此可以在后续步骤中将其用于其他值:
$array = array_column($array["configurableFields"]["configurableField"], null, "label");
然后您将具有Job Information
和Hours and salary
键。然后,您可以通过criterion
为label
编制索引:
$HoursSalary = array_column($array["Hours and salary"]["criteria"]["criterion"], null, "label");
最后访问value
键的Salary
:
echo $HoursSalary["Salary"]["value"];