【问题标题】:Print out key/value of an object打印出对象的键/值
【发布时间】:2016-05-13 03:31:09
【问题描述】:

我有一个数组


dd($vcpe)

array:23 [▼
  "cpe_mac" => "436291229311"
  "bandwidth_max_up" => 0
  "bandwidth_max_down" => 0
  "filter_icmp_inbound" => false
  "dmz_enabled" => false
  "dmz_host" => "192.168.1.1"
  "vlan_id" => 2
  "dns" => array:1 [▼
    0 => ""
  ]
  "xdns_mode" => 0
  "cfprofileid" => 11111
  "stub_response" => "0"
  "acl_mode" => 0
  "portal_url" => ""
  "fullbandwidth_max_up" => 1000000
  "fullbandwidth_max_down" => 2000000
  "fullbandwidth_guaranty_up" => 300000
  "fullbandwidth_guaranty_down" => 400000
  "account_id" => 1001
  "location_id" => 3333
  "network_count" => 3
  "group_name" => "test_group"
  "vse_id" => 20
  "firewall_enabled" => false
]

我想遍历它,并打印出键和值。

尝试#1

        @foreach ($vcpe as $key => $value)
          <p>{{$key}} : {{$value}}</p>
        @endforeach 

我明白了

htmlentities() expects parameter 1 to be string, array given

尝试#2

        @foreach ($vcpe as $key => $value)
          <p>{!!$key!!} : {!!$value!!}</p>
        @endforeach

我明白了

Array to string conversion

尝试#3

        @foreach ($vcpe as $key => $value)
          @foreach ($key as $k => $v)
            <p>{{$k}} : {{$v}}</p>
          @endforeach
        @endforeach

我明白了

Invalid argument supplied for foreach()

我做错了什么?

我该如何解决?

谁能告诉我如何打印出我所有的对象的键/值?

【问题讨论】:

  • 首先你能不能在控制器中做一个print_r($vcpe),这样我们就可以看到这个数据结构的真实样子。将结果粘贴到您的问题
  • 在尝试 2 中,其中一个值是数组。您尝试将其打印为字符串并得到相应的错误。在 Try 3 中,许多值不是数组,因此您不能使用 foreach 来遍历它们。您需要检查该值是否为数组,然后执行相应的任务。
  • 试试$newArray = (array)$vcpe; ande 然后使用foreach
  • 先将对象转为数组,然后用foreach循环,将对象转为数组,使用$array = (array) $yourObject;这个
  • 我有感觉,不是对象而是$vcpe->dns的值,它是一个数组。删除{{$value}}时可以循环不出错吗??

标签: php arrays laravel laravel-5 blade


【解决方案1】:

在我看来,$value 可以是一个数组。不幸的是,您并没有只循环键,所以我不能确定。但我敦促你试试这个:

@foreach ($vcpe as $key => $value)
    @if (is_array($value))
        <p>{{$key}} :
        @foreach ($value as $value_key => $value_value) 
            {{$value_value}} 
        @endforeach
        </p>
    @else
        <p>{{$key}} : {{$value}}</p>
    @endif
@endforeach

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2022-08-05
    • 2019-11-07
    • 2021-12-26
    相关资源
    最近更新 更多