【问题标题】:Multi-dimensional PHP array多维 PHP 数组
【发布时间】:2013-03-04 18:40:18
【问题描述】:

我想不出一种方法来编写一个 PHP 脚本来打印名字、姓氏、电子邮件和帐户 ID 这个多维数组。这是从 cURL 脚本返回的 json 数据。朋友们能帮帮我吗?

Array
(
    [operationResult] => SUCCESS
    [responseDateTime] => 2013-03-15T15:52:25.180-05:00
    [page] => Array
        (
            [currentPage] => 1
            [pageSize] => 10
            [totalPage] => 1
            [totalResults] => 1
        )
    [searchResults] => Array
        (
            [nameValuePairs] => Array
                (
                    [nameValuePair] => Array
                        (
                            [0] => Array
                                (
                                    [name] => Account Id
                                    [value] => 7601
                                )

                            [1] => Array
                                (
                                    [name] => User Email 1
                                    [value] => jim@email.com
                                )

                            [2] => Array
                                (
                                    [name] => First Name
                                    [value] => Jim
                                )

                            [3] => Array
                                (
                                    [name] => Last Name
                                    [value] => Burns
                                )
                        )
                )
        )
)

编辑:很抱歉没有包括我的尝试。我尝试了以下方法:

foreach ($client_emails_array as $operation) 
{ 
    echo $operation['page']['searchResults']['nameValuePairs']['nameValuePair']['name']."<br>";
    echo $operation['page']['searchResults']['nameValuePairs']['nameValuePair']['value']."<br>";
}

这让我收效甚微

【问题讨论】:

  • 对不起,我的数组的第一部分格式不正确,很抱歉。
  • 我们希望您在询问 SO 之前尝试过一些事情。请在您的帖子中添加一些有关您尝试过的方法以及为什么不起作用的信息。

标签: php arrays json curl multidimensional-array


【解决方案1】:

严格来说,只打印值就可以这样完成:

foreach ($operation['searchResults']['nameValuePairs']['nameValuePair'] as $key => $data) {
    echo $data['value'];
}

如果您想做更多事情,您可以向foreach 块添加更多逻辑,以检索已打印的值等等。

【讨论】:

  • 我试过这个并得到:警告:在第 56 行的 /home/truthloo/public_html/blerg/z2support.php 中为 foreach() 提供的参数无效;我的阵列可能有问题吗?原来是json代码,但是通过json_decode函数解码:$client_emails_array = json_decode($result_2,TRUE);
  • 鉴于问题中的数组,代码有效。您的实际数据在某种程度上有所不同。这是来自 json_decode 的 var_dump 吗?
【解决方案2】:

根据您的编辑 - ['searchResults'] 不在 ['page'] 数组中。尝试删除['page']

foreach ($client_emails_array as $operation) 
{ 
   echo $operation['searchResults']['nameValuePairs']['nameValuePair']['name']."<br>";
   echo $operation['searchResults']['nameValuePairs']['nameValuePair']['value']."<br>";
}

【讨论】:

    【解决方案3】:

    数据结构实际上对于您的用例来说有点糟糕,但您应该能够像这样获得它:

    $data_array = $main_array['searchResults']['nameValuePairs']['nameValuePair']
    $final_array = array();
    foreach($data_array as $nvp) {
        $final_array[$nvp['name']] = $nvp['value'];
    }
    var_dump ($final_array);
    

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2022-01-07
      • 2011-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多