第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

顯示按鍵分組的元素中的數(shù)組值

顯示按鍵分組的元素中的數(shù)組值

PHP
哆啦的時光機 2023-05-26 17:29:33
我有以下數(shù)據(jù)結(jié)構(gòu):Array(    [0] => stdClass Object        (            [id] => 1            [title] => Golf            [manufacturer] => 1        )    [1] => stdClass Object        (            [id] => 2            [title] => Focus            [manufacturer] => 2        )    [2] => stdClass Object        (            [id] => 3            [title] => Jazz            [manufacturer] =>         )    [3] => stdClass Object        (            [id] => 4            [title] => Passat            [manufacturer] => 1        )    [4] => stdClass Object        (            [id] => 5            [title] => Toureg            [manufacturer] => 1        )    [5] => stdClass Object        (            [id] => 6            [title] => Galaxy            [manufacturer] => 2        ))我想這樣顯示它:<div class="container id1">    ID: 1 - Golf    ID: 4 - Passat    ID: 5 - Toureg</div><div class="container id2">    ID: 2 - Focus    ID: 6 - Galaxy</div><div class="container">    ID: 3 - Jazz</div>所以我的視圖代碼將輸出我嘗試這樣做的上述數(shù)組:foreach ($cars as $car){    echo '<div class="container">';    if ($car->manufacturer) {        echo '</div>';        echo '<div class="container id'. $car->manufacturer .'">';        echo $car->id . ' - ' . $car->title;        echo '</div>';    } else {        echo '</div>';        echo '<div class="container">';        echo $car->id . ' - ' . $car->title;        echo '</div>';    }}但這會輸出幾個空<div class="container"></div>元素,而且只有<div class="container">ID: 1 - Golf</div>, 不像所需的輸出。如何使用此數(shù)組獲得所需的輸出?請注意,Jazz 沒有制造商集,因此<div>類不應(yīng)該有 idX 集,其中 X 是制造商的 ID 值。
查看完整描述

1 回答

?
慕桂英3389331

TA貢獻2036條經(jīng)驗 獲得超8個贊

您需要做的第一件事是根據(jù)您可以使用的制造商對數(shù)組進行排序usort,按值對沒有制造商的條目進行排序id。然后你可以遍歷汽車,檢查制造商是否與前一輛汽車相同,如果是,則輸出一個新<div>元素并關(guān)閉前一個(如果需要):

// sort based on manufacturer

usort($cars, function ($a, $b) {?

? ? if (!$a->manufacturer) {

? ? ? ? // if both null, sort by id

? ? ? ? if (!$b->manufacturer) return $a->id - $b->id;

? ? ? ? // otherwise sort null values last

? ? ? ? return 1;

? ? }

? ? if (!$b->manufacturer)

? ? ? ? // sort null values last

? ? ? ? return -1;

? ? return $a->manufacturer - $b->manufacturer;

});


$lastmfg = 0;

foreach ($cars as $car) {

? ? if (!$car->manufacturer || $car->manufacturer != $lastmfg) {

? ? ? ? if ($lastmfg !== 0) echo "</div>\n";

? ? ? ? echo '<div class="container'. ($car->manufacturer ?? ' id' . $car->manufacturer : '') .'">'. "\n";

? ? }

? ? echo 'ID: ' . $car->id . ' - ' . $car->title . "\n";

? ? $lastmfg = $car->manufacturer;

}

echo "</div>\n";

輸出(用于擴展演示):


<div class="container id1">

ID: 1 - Golf

ID: 4 - Passat

ID: 5 - Toureg

</div>

<div class="container id2">

ID: 2 - Focus

ID: 6 - Galaxy

</div>

<div class="container id3">

ID: 9 - Phoenix

</div>

<div class="container">

ID: 3 - Jazz

</div>

<div class="container">

ID: 7 - Falcon

</div>

<div class="container">

ID: 8 - Commodore

</div>

<div class="container">

ID: 10 - Cressida

</div>

3v4l.org 上的演示


查看完整回答
反對 回復(fù) 2023-05-26
  • 1 回答
  • 0 關(guān)注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號