亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Laravel 控制器的嵌套 foreach 循環中構建數組

在 Laravel 控制器的嵌套 foreach 循環中構建數組

PHP
largeQ 2023-04-02 10:21:49
我正在嘗試使用 Laravel 控制器中的嵌套 foreach 循環,從長期的雄辯關系中構建一個用戶 ID 數組,但無法使其正常工作。用戶可以有發布者,這些發布者可以有團隊,每個團隊都有成員。用戶可以在多個團隊中,因此我還需要刪除重復的 ID。我想以一個計數結束,看看有多少團隊成員與用戶相關聯。在我的用戶模型中public function publishers(){    return $this->belongsToMany('App\Publisher')->withTimestamps();}在我的發布者模型中public function teams(){  return $this->belongsToMany('App\Team')->withTimestamps();}在我的團隊模型中public function members(){  return $this->belongsToMany('App\User')->withPivot('status', 'title', 'team_role_ids')->withTimestamps();}在我的配置文件控制器中foreach ($user->publishers as $userPublisher) {  foreach ($userPublisher->teams as $publisherTeam) {    $teamUserIds[] = $publisherTeam->members->pluck('id')->toarray();  }}$deDupedIds = array_unique($teamUserIds, SORT_NUMERIC);$idsCount = count($deDupedIds);但是我得到了多個數組,而不僅僅是一個已編譯的數組,而且計數不起作用。知道我做錯了什么嗎?
查看完整描述

2 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

您正在為每次迭代分配一個新數組$teamUserIds。這就是您獲得多個陣列的原因。


$teamUserIds = [];

foreach ($user->publishers as $userPublisher) {

  foreach ($userPublisher->teams as $publisherTeam) {

    $teamUserIds = array_merge($teamUserIds, $publisherTeam->members->pluck('id')->toarray());

  }

}

$deDupedIds = array_unique($teamUserIds, SORT_NUMERIC);

$idsCount = count($deDupedIds);


查看完整回答
反對 回復 2023-04-02
?
www說

TA貢獻1775條經驗 獲得超8個贊

您正在將 id 數組添加$publisherTeam->members->pluck('id')->toarray();為$teamUserIds. 但你想要做的是mergeids 數組


所以你的代碼會是這樣的:


foreach ($user->publishers as $userPublisher) {

  foreach ($userPublisher->teams as $publisherTeam) {

    $teamUserIds = array_merge($teamUserIds , $publisherTeam->members->pluck('id')->toarray());

  }

}

$deDupedIds = array_unique($teamUserIds, SORT_NUMERIC);

$idsCount = count($deDupedIds);


查看完整回答
反對 回復 2023-04-02
  • 2 回答
  • 0 關注
  • 120 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號