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

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

PHP數(shù)組排序,強(qiáng)制第一行

PHP數(shù)組排序,強(qiáng)制第一行

PHP
泛舟湖上清波郎朗 2021-07-01 14:15:23
如何在 PHP 中對數(shù)組進(jìn)行排序以強(qiáng)制將所選行作為第一行?我的陣列是array[]=array(id=>'a', content=>'lemon');array[]=array(id=>'b', content=>'apple');array[]=array(id=>'c', content=>'banana');array[]=array(id=>'d', content=>'cherry');如何對數(shù)組進(jìn)行排序以強(qiáng)制array[]=array(id=>'b', content=>'apple');作為第一行,其余無關(guān)緊要(蘋果是關(guān)鍵)。在其他示例中,將排序以獲取array[]=array(id=>'d', content=>'cherry');作為第一行,其余無關(guān)緊要(櫻桃是關(guān)鍵)。
查看完整描述

3 回答

?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

另一種方法是使用 有效地旋轉(zhuǎn)數(shù)組array_slice,將您想要的元素帶到開始處:


$first = 'apple';

$k = array_search($first, array_column($array, 'content'));

$array = array_merge(array_slice($array, $k), array_slice($array, 0, $k));

print_r($array);

輸出:


Array (

  [0] => Array ( [id] => b [content] => apple )

  [1] => Array ( [id] => c [content] => banana )

  [2] => Array ( [id] => d [content] => cherry )

  [3] => Array ( [id] => a [content] => lemon ) 

)


查看完整回答
反對 回復(fù) 2021-07-09
?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊

有兩種方法我可以想到這樣做。第一個(gè)是評論中的 Ultimater 建議提取匹配的行,然后排序,然后將行添加回...


$first = 'apple';

$array = [];

$array[]=array('id'=>'a', 'content'=>'lemon');

$array[]=array('id'=>'b', 'content'=>'apple');

$array[]=array('id'=>'c', 'content'=>'banana');

$array[]=array('id'=>'d', 'content'=>'chery');

$firstElement = array_search($first, array_column($array, "content"));

$row = $array[$firstElement];

unset($array[$firstElement]);

sort($array);

array_unshift($array, $row);

print_r($array);

第二個(gè)是使用usort和添加特定的子句,如果鍵首先匹配你想要的行,那么它總是會(huì)強(qiáng)制它到第一行......


$first = 'apple';

usort($array, function ($a, $b) use ($first){

    if ( $a['content'] == $first)   {

        return -1;

    }

    if ( $b['content'] == $first)   {

        return 1;

    }

    return $a <=> $b;

});

print_r($array);

(我已經(jīng)使用<=>了 PHP 7+,如果您需要使用 PHP 5,還有其他選擇)。


如果您的評論表明不需要對其余數(shù)據(jù)進(jìn)行排序,那么應(yīng)該使用第一組代碼減去sort()。


查看完整回答
反對 回復(fù) 2021-07-09
?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

另一種選擇 - 如果 id:content 是一對一的,我們可以按內(nèi)容索引數(shù)組,并與具有單個(gè)空“apple”鍵(或您要查找的任何內(nèi)容值)的數(shù)組合并。

$array = array_merge(['apple' => []], array_column($array, null, 'content'));

如果生成的字符串鍵不受歡迎,則可以使用 重新索引數(shù)組array_values。

如果數(shù)組只包含 id 和 content 并且 id:content 實(shí)際上是一對一的,則鍵值對的“字典”將比這樣的行列表更容易處理,最好設(shè)置如果可能的話,以這種方式開始。

如果 id:content 不是一對一的,那么...沒關(guān)系。;-)


查看完整回答
反對 回復(fù) 2021-07-09
  • 3 回答
  • 0 關(guān)注
  • 237 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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