最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

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

一個php的面試題,大家看看

一個php的面試題,大家看看

MMMHUHU 2018-07-31 20:10:25
$listData = [    '111' => ['a', 'b', 'c', 'a'],    '222' => ['d', 'e', 'f', 'f', 'b'],    '333' => ['g', 'h'],    '444' => ['i', 'j'],    ...];定義一個函數(shù),傳入$listData如果111里面的元素,和 222/333/444... 里面的元素有重復(fù),返回false 如果222里面的元素,和 111/333/444... 里面的元素有重復(fù),返回false 如果333里面的元素,和 111/222/444... 里面的元素有重復(fù),返回false 如果 ...允許 111/222/333/444 自己里面的元素重復(fù),返回true 其他情況返回true已知:$listData長度未知111/222/333/444... 的長度未知111/222/333/444... 里的元素為字符串和數(shù)字
查看完整描述

2 回答

?
ibeautiful

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

我對子數(shù)組的定義是像 ['a', 'b', 'c', 'a'] 這樣的單個數(shù)組。

我的答案:

$result = array();

foreach ($listData as $line) {

    //子數(shù)組內(nèi)部去重,再組裝回原來的格式

    $result[] = array_unique($line);

}


//子數(shù)組先去重再合并的結(jié)果數(shù)量 和 先合并子數(shù)組再去重的結(jié)果數(shù)量 做比較。

//如果是相同的,意味著不存在跨子數(shù)組的重復(fù),只存在子數(shù)組內(nèi)部重復(fù),所以`True`

var_dump(count(array_merge(...$result)) === count(array_unique(array_merge(...$listData))));

我這個答案調(diào)用系統(tǒng)函數(shù)次數(shù)比較多,看起來簡潔一些,但是PHP array_xxx 這類函數(shù)很大一部分性能是不具備優(yōu)勢的,如果不用這些函數(shù),能相對程度提高運行效率。

方便理解的輔助參考信息:

原始數(shù)據(jù):

$listData = [

    '111' => ['a', 'b', 'c', 'a'],

    '222' => ['d', 'e', 'f', 'f', 'b'],

    '333' => ['g', 'h'],

    '444' => ['i', 'j']

];

然后 $result 最終是這樣的:

$listData = [

        '111' => ['a', 'b', 'c'],

        '222' => ['d', 'e', 'f', 'b'],

        '333' => ['g', 'h'],

        '444' => ['i', 'j']

];

子數(shù)組先去重再合并的結(jié)果

Array(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
    [6] => b
    [7] => g
    [8] => h
    [9] => i
    [10] => j
)

用于和上面進(jìn)行數(shù)量(數(shù)組元素數(shù)量)比較的,所謂的“先合并子數(shù)組再去重的結(jié)果”:

Array(
    [0] => a
    [1] => b
    [2] => c
    [4] => d
    [5] => e
    [6] => f
    [9] => g
    [10] => h
    [11] => i
    [12] => j
)


查看完整回答
反對 回復(fù) 2018-08-06
?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗 獲得超5個贊

function check($arr)

{

  $chk = [];

  foreach ($arr as $k => $v)

    foreach ($v as $i)

    {

      if (isset($chk[$i] && $chk[$i] != $k)

        return false;

      $chk[$i] = $k;

    }

  return true;

}

爪機(jī)碼字,應(yīng)該是效率最高的,自己調(diào)試下。


查看完整回答
反對 回復(fù) 2018-08-06
  • 2 回答
  • 0 關(guān)注
  • 1119 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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