【问题标题】:Laravel 5 Loop Through ArrayLaravel 5 循环数组
【发布时间】:2017-03-15 12:49:36
【问题描述】:

我正在将一个变量 $mailchimp 从我的控制器传递到我的视图。

这就是我通过{{dd($mailchimp)}}得到的结果

    array:8 [▼
      "id" => "xyz123"
      "email_address" => "john.doe@discworld.com"
      "unique_email_id" => "c9a36649c8"
      "email_type" => "html"
      "status" => "subscribed"
      "merge_fields" => array:2 [▼
        "FNAME" => "John"
        "LNAME" => "Doe"
      ]
      "stats" => array:2 [▼
        "avg_open_rate" => 0
        "avg_click_rate" => 0
      ]
      "list_id" => "769808qeqw92"
    ]

我怎样才能遍历这个数组 ($mailchimp) ?使用下面的代码,我得到一个异常:“htmlentities() 期望参数 1 是字符串,给定数组”

@foreach($mailchimp as $user)
  @if(is_array($user))
    @foreach($user as $key => $value)
      {{$value}}
    @endforeach
  @endif
@endforeach

更新: 在我的控制器中使用此代码

public function index()
{   //Fetch all subscribers from DB
    $subscribers = Subscriber::where('user_id', Auth::user()->id)->orderBy('created_at','asc')->get();

    foreach ($subscribers as $key => $subscriber) {
      //Check if the local subscriber is also present in mailchimp
      $mailchimp = Newsletter::getMember($subscriber->email);
    }

    return view('backend.newsletter.contacts.index')->withSubscribers($subscribers)
                                                    ->withMailchimp($mailchimp);
}

我需要迭代 mailchimp 数组。由于有多个用户,alexey 的建议不再奏效。

这仍然不起作用:

@foreach($mailchimp as $key => $user)
    {{$user}}
  @endforeach

【问题讨论】:

  • 有没有可能 {{$value}} 是一个数组?
  • 这个数组是..什么样的数组?

标签: php laravel foreach


【解决方案1】:

您无需遍历$user。如果$mailchimp 是用户数组,请执行以下操作:

  {{ $mailchimp['email_adress'] }}
  {{ $mailchimp['merge_fields']['FNAME'] }} {{ $mailchimp['merge_fields']['LNAME'] }}

【讨论】:

  • 根据你的建议,我得到了这个:“非法字符串偏移 'email_address'”
  • @Mamulasa,请发布{{ dd($mailchimp) }}结果。
  • {{dd($mailchimp) 在我上面的问题中
  • @Mamulasa,如果{{ dd($mailchimp) }} 是您所说的上述问题中列出的数组,则更新后的代码将为您工作。
  • 抱歉,没有删除foreach
【解决方案2】:

由于您只对打印数组中的值感兴趣,您可以使用array_flatten 摆脱嵌套数组,然后循环遍历结果:

@foreach(array_flatten($mailchimp) as $userData)    
    {{$userData}} 
@endforeach

【讨论】:

    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 2015-08-04
    • 2016-10-22
    • 2018-07-30
    • 1970-01-01
    • 2016-07-08
    相关资源
    最近更新 更多