【问题标题】:can't get a full list of name from a multiple arrays无法从多个数组中获取完整的名称列表
【发布时间】:2018-06-12 07:23:16
【问题描述】:

API 数据, 这是我试图从上述数组中获取完整名称列表的代码:

<?php
    $url = "www.com" ;
    $str= file_get_contents($url);
    $arr = json_decode($str,true);

   for($i=1; $i<count($arr); $i++) {
      echo $arr["data"][$i]["name"];
   };
?> 

但我只能得到名字“Jonia”,而不是全部:(

有人可以帮忙吗?谢谢!

【问题讨论】:

  • 或者,你可以这样做$listOfNames = array_column($arr["data"], "name");
  • 您指定了错误的密钥,您的 $i 直到 27 岁才能获得

标签: php arrays json output


【解决方案1】:

您需要访问具有值12752...的每个键,这不是按顺序排列的。因此,您可以做的是获取data 对象的键,然后遍历该对象的每个键,例如$arr["data"]['1']["name"]$arr["data"]['27']["name"] 等等。

<?php
  $url = "www.com" ;
  $str= file_get_contents($url);
  $arr = json_decode($str,true);

  foreach($arr["data"] as $key=>$val){
    echo $arr["data"][$key]["name"];
  }
?>

【讨论】:

    【解决方案2】:

    而不是使用:

    for($i=1; $i<count($arr); $i++) {
       echo $arr["data"][$i]["name"];
    };
    

    我会使用 PHP 内置的 array_column():

    $listOfNames = array_column($arr["data"], "name");
    

    这将完全按照您的意愿行事,并在数组中为您收集姓名列表。

    或者,您可以使用 foreach() 循环遍历代码:

    foreach($arr["data"] as $val){
        echo $val;
    }
    

    【讨论】:

    • 谢谢,德里克。你的代码也可以帮我解决。再次感谢:)))
    • @MaTi 没问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 2015-07-22
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多