使用通用键搜索多维 JSON 数组的值 - php

我正在尝试搜索从 SOAP XML 响应转换为特定值的复杂 JSON 数组。钥匙真的很通用。


 ["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 循环中定位它来打印值。


编辑:忘记添加如果缺少某些数据,数组中值的位置可能会发生变化。


慕哥6287543
浏览 97回答 1
1回答

ibeautiful

您可以通过 索引该数组,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的:Salaryecho $HoursSalary["Salary"]["value"];
打开App,查看更多内容
随时随地看视频慕课网APP