目錄
回复内容:
首頁 後端開發 php教程 算法问题:从数据集中按规则取指定数量的数据集合

算法问题:从数据集中按规则取指定数量的数据集合

Jun 06, 2016 pm 08:07 PM
php 演算法

遇到一个算法问题,一直不得求解,恳请大神指点!
现有数据:

<code><?php $data = array(
    array('e', 'l'),
    array('a', 'e', 'g', 'k', 'o', 'v', 'y'),
    array('d', 'g', 'l', 'v', 's', 'j', 'r', 'z', 'y', 'e', 'p', 't', 'w', 'q', 'x', 'i', 'f', 'c'),
    array('c', 'd', 'g', 'i', 'n', 's', 'u'),
    array('b', 'l', 'q', 'n', 't', 'm', 'p', 'x', 'e', 'k', 'd', 'h', 's', 'f', 'g', 'v', 'z', 'o', 'r', 'j'),
    array('l', 't', 'u', 'w'),
    array('c', 'f', 'g', 'h', 'i', 'l', 'n', 'o', 'p', 'q', 'u', 'w', 'y'),
    array('b', 'd', 'e', 'f', 'g', 'i', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'y'),
    array('g', 'a', 's', 'z', 'd', 'w', 'k', 'n', 'h', 'b', 'r'),
    array('j', 'g', 'c', 'u', 'h', 'o', 'w', 'z', 's', 'f', 'e', 'x', 'i', 'k', 'r', 'a', 'y', 't', 'l', 'p', 'q', 'v', 'n', 'b'),
    array('a', 'b', 'g', 'h', 'j', 'k', 'l', 'o', 'p', 'v', 'w', 'x'),
    array('m', 'q', 't', 'e', 'w', 'n', 'l', 'j', 'v', 'x', 'h', 'p', 'b', 'a', 'g', 'f', 'z', 'c', 'd', 'k', 'u', 'o', 's', 'r', 'y', 'i'),
    array('k', 'n', 'p', 'r'),
    array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'n', 'o', 'p', 'q', 'r', 'v', 'x', 'y'),
    array('j', 'k', 'p', 'z', 'g', 'c'),
    array('j', 'c', 'q', 'x', 'z', 'u', 'r', 't', 'm', 'l', 'f', 'n', 'h', 'y', 'w', 'p', 'd', 'k', 'b', 'i', 'a', 'o', 'e'),
    array('a', 'b', 'c', 'd', 'e', 'h', 'j', 'n', 'p', 'q'),
    array('a', 'c', 'd', 'e', 'h', 'i', 'j', 'p', 'q', 'r', 'y'),
    array('m', 'a', 'c', 'p', 't', 'z', 'd', 'u', 'l', 'f'),
    array('b', 'q', 't', 'u', 'w'),
    array('f', 'k', 'o', 'r'),
    array('y', 'n', 'l', 't', 'b', 'j', 'f', 'i', 'k', 'd', 'r', 'o', 'g', 'v', 'c', 'a', 'm', 'w', 'z'),
    array('q', 'u', 's', 'p', 'o', 'g', 'h', 'l', 'j', 'y', 'z', 'b'),
    array('c', 'y', 'j', 'v', 'a', 'g', 'f', 'l', 'm', 'z', 'o', 'e', 'u', 'q', 'k', 'n'),
    array('e', 'y', 'i', 'z', 'g', 'x', 'd', 's', 'h', 'w', 'j', 'b', 'm', 'v', 'u', 'a', 'k', 'n', 'r', 'q', 'p', 'f', 'o', 't', 'c'),
    array('a', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 'u', 'v', 'w', 'x', 'y'),
    array('b', 'g', 'h', 'i', 'j', 'l', 'm', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y'),
    array('n', 'b', 'c', 'i', 'o', 'k', 'g', 's', 'e', 't', 'w', 'z', 'a', 'l', 'j', 'u', 'h'),
    array('a', 'd', 'i', 'k', 'r', 'y'),
    array('e', 'f', 'g', 'j', 'l', 'n', 'o', 'r', 't', 'u', 'w', 'x'),
    array('t', 's', 'n', 'f', 'w', 'm', 'u', 'l', 'o', 'z', 'g', 'y', 'a', 'j', 'q', 'v', 'h', 'k', 'c', 'd'),
    array('q', 'g', 'b', 'p', 'z', 'i', 's', 'm', 'k', 'c', 'y', 'w', 'e', 'h'),
    array('h', 'x', 'r', 'e', 'f', 'b', 'd', 'n', 's', 'j', 'k', 'a', 'p', 'z', 'm', 'o', 'y', 'v', 'c', 'w', 't', 'g', 'u'),
    array('d', 'e', 'h', 'm', 'p'),
    array('u', 'm', 'd', 'k', 't', 'l', 'y', 'o', 'e', 'x', 'z', 'w', 'g', 'h', 'i', 'v', 'j', 'f', 'p', 'a', 'q', 'c', 'b', 'n', 's', 'r'),
    array('g', 'l', 's', 'y'),
    array('w', 'j', 'u', 's', 'h', 'i', 'z', 'o', 'm', 'r', 'v'),
    array('f', 'o', 'q', 'h', 'x', 's', 'w', 'g', 'p', 'd', 'l', 'j', 'k', 'c', 'n', 'e', 'i', 'z', 't', 'y', 'b', 'm'),
    array('n', 't', 'h', 'v', 'i', 'j', 'g', 'u', 'x', 'z', 'c', 'k'),
    array('h', 'e', 'r', 'z', 'w', 's', 'b'),
    array('k', 'i', 'w', 'm', 'g', 'a', 'r', 'n', 'y', 'x', 't', 'v', 'h', 'b', 'e', 'd', 'j', 'f', 'u', 'q', 's', 'p', 'c', 'z', 'o', 'l'),
    array('a', 'c', 'd', 'h', 'i', 'k', 'p', 'r', 'v', 'w', 'y'),
    array('m', 'a', 'n', 't', 'i', 'u', 'h', 'd', 'b', 'v', 'x', 'z', 'w', 'g', 's', 'y', 'j', 'l', 'e', 'o', 'c'),
    array('y', 't', 'r', 'w', 'n', 'u', 'z'),
    array('z', 'b', 'q', 'i', 'm', 'v', 't', 'h', 'a', 'k', 'e', 'o', 'w', 'f', 's', 'g', 'l', 'd', 'y', 'n', 'c', 'x', 'r', 'p', 'u', 'j'),
    array('b', 'c', 'e', 'h', 'k', 'l', 'n', 'o', 'p', 'q', 'v'),
    array('a', 'e', 'h', 'k', 'n', 'p', 'q', 'r', 't', 'x', 'y'),
    array('j', 'u', 'v', 'm', 'g', 'l', 'f', 'z', 'a', 'd', 'n', 'b', 'h', 'q', 'c', 'y', 'w'),
    array('g', 'j', 'r', 'u'),
    array('c', 'd', 'e', 'h', 'i', 'k', 'l', 'o', 'p', 'q', 'r', 'u', 'v', 'y'),
    array('y', 't', 'u', 'n', 'f', 'z', 'r', 'c', 'i', 'v', 'o', 'j', 'g', 'p', 'b', 'h', 'w', 'm', 'e', 'k', 'l', 's', 'd', 'q'),
    array('d', 'f', 'g', 'i', 'j', 'o', 'q', 'u', 'x'),
    array('a', 'b', 'c', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'p', 'q', 't', 'u', 'x'),
    array('p', 'u', 'r', 'y', 'v', 'l', 'b', 'n', 'z', 'k', 'q', 'm', 'a', 't', 'e', 'c'),
    array('k', 'j', 'x', 'v', 'p', 'd', 't', 'f', 'l', 's', 'c', 'z', 'b'),
    array('j', 'm', 't', 'e', 'v', 'u', 'k', 'w', 'c', 'b', 'q', 'y', 'o', 'i', 'p', 'h', 'g', 'z', 'd', 's', 'f', 'l', 'r', 'n'),
    array('a', 'r', 's'),
    array('n', 'd', 'e', 'g', 'r', 's', 'o', 'm', 'j', 'v', 't', 'x', 'z', 'a', 'i', 'y', 'f', 'k', 'h'),
    array('b', 'x', 'k', 'j', 'o', 'g', 'm', 'c', 'i', 'q', 'r', 'h', 'e', 'p', 'w', 'a', 'd', 'v', 'z'),
    array('x', 'o', 'l', 'z', 'j', 'h', 'y', 'g', 'k', 'u', 'p', 's', 'v', 'q', 'm', 'a', 'n', 'i', 't', 'b', 'e', 'd', 'c', 'f', 'r'),
    array('h', 'i', 'm', 'o', 'x', 'y'),
    array('m', 'y', 'n', 'p', 'l', 'e', 'o', 't', 'r', 'q', 'v', 'd', 'z'),
    array('a', 'c', 'd', 'f', 'g', 'h', 'i', 'j', 'k', 'o', 'p', 'q', 's', 'u', 'w', 'x'),
    array('a', 'd', 'h', 'i', 'j', 'l', 'm', 'n', 'o', 'r', 's', 'w', 'x', 'y'),
    array('f', 'k', 'l', 'y', 'p', 'e', 'n', 'j', 'v', 's', 't', 'm', 'd', 'x', 'z', 'r', 'i'),
    array('e', 'y', 'v', 't', 'x', 'r', 'k', 'n', 'p', 'm', 'i', 'z', 'j', 'l', 'c', 'g'),
    array('x', 'z', 'r', 'c', 'n', 'q', 'h', 'j', 'a', 'l'),
    array('p', 'z', 'x', 'm', 'r'),
    array('s', 'r', 'x', 'l', 'b', 'e', 't', 'g', 'y', 'w', 'm', 'z', 'o', 'a', 'v', 'i', 'q', 'd', 'p', 'c'),
    array('s', 'g', 'u', 'd', 'n', 'm', 't', 'a', 'y', 'x', 'w', 'v', 'r', 'l', 'f', 'z', 'q', 'j', 'k', 'e', 'p', 'h', 'b'),
    array('h', 'y', 'j', 'o', 'k', 'z', 'e', 'a', 'r', 'f', 'c'),
    array('z', 'm', 's'),
    array('c', 'd', 'e', 'f', 'g', 'j', 'l', 'm', 'o', 'q', 'r', 's', 't', 'u', 'v'),
    array('w', 'c', 'q', 'j', 'i', 'b', 'v', 'a', 'k', 'z', 'm', 'g', 'n', 'l', 's', 'd', 'u', 't', 'e', 'f', 'r', 'x'),
    array('a', 'o', 'k', 'd', 'm', 'q', 'p', 'e', 'r', 's', 'z', 'y'),
    array('a', 'c', 'f', 'g', 'h', 'j', 'n', 'q', 'r', 'u', 'x'),
    array('x', 'z', 'd', 's', 'f', 'i', 'e', 'h', 'c', 'j'),
    array('h', 'i', 'y'),
    array('z', 's', 'm', 'i', 'o', 'c', 'd', 'j', 'f', 't', 'p', 'h', 'q', 'x', 'r', 'e', 'k'),
    array('t', 'b', 'f', 'q', 'c', 'i', 'd', 'v', 'm', 'k', 'n', 's', 'e', 'p', 'x', 'h', 'z', 'y', 'r'),
    array('c', 'j', 'l', 'o', 'r'),
    array('z', 'd'),
    array('z', 'o', 'e', 'y', 'b', 'd', 'l', 'w', 'v'),
    array('k', 'd', 'z', 'o', 'm', 'c', 'i', 'n', 'p', 'x', 'e', 'y', 'w', 'b', 'f', 'h', 'r', 'g', 'q', 's', 'v'),
    array('k', 's'),
    array('o', 'g', 'z', 'b', 'm', 'n', 'u', 'w', 'q', 's', 't', 'i', 'c', 'h', 'd', 'x', 'f', 'y', 'a', 'k'),
    array('a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x'),
    array('a', 'x', 't', 'm', 'l', 'i', 'v', 'd', 'y', 'n', 'q', 'o', 'h', 's', 'c', 'b', 'g', 'u', 'z', 'e', 'k', 'j', 'p'),
    array('j', 'k', 'p', 'z', 'u', 'q', 'n', 't', 'm', 'f', 'i', 'h', 'l', 'c', 'x', 'a', 'e', 'v', 'b', 's', 'r', 'y', 'w', 'd', 'g', 'o'),
    array('l', 'm', 'v', 'y'),
    array('c', 'f', 'h', 'i', 'j', 'n', 'p', 'q', 's', 't', 'w', 'x'),
    array('d', 'm', 's'),
    array('h', 'w', 'x', 'u', 'e', 'r', 'd', 'i', 'k', 'j', 'a', 'l', 'g', 'y', 'b', 'f', 't', 'n', 'o', 's', 'q', 'z', 'm', 'v'),
    array('f', 'y'),
    array('d', 'f', 'i', 'p', 'u'),
    array('a', 'b', 'j', 'm', 'r'),
    array('n', 'h', 'd', 'z', 'e', 'v', 'x', 'j', 'f', 'b', 'q', 'r', 'y', 'c', 'w', 'k', 'm'),
    array('x', 'y', 'q', 'h', 'w', 'r', 's', 'g', 'j', 'z', 'e', 'v', 'u', 'p'),
    array('h', 'w', 'm', 'l', 'f', 'p', 'a', 'v', 'b', 'q', 'g', 'y', 'c', 'u', 'r', 't', 'j', 'o', 'k', 'z', 'x', 'n', 'e', 'i', 's'),
    array('i', 'u'),
);
$times = array(
    'a' => 29,
    'b' => 11,
    'c' => 33,
    'd' => 84,
    'e' => 46,
    'f' => 67,
    'g' => 19,
    'h' => 18,
    'i' => 88,
    'j' => 8,
    'k' => 54,
    'l' => 86,
    'm' => 88,
    'n' => 29,
    'o' => 96,
    'p' => 1,
    'q' => 4,
    'r' => 100,
    's' => 89,
    't' => 44,
    'u' => 53,
    'v' => 68,
    'w' => 12,
    'x' => 54,
    'y' => 23,
    'z' => 78,
);
?></code>
登入後複製
登入後複製

其中$data包含100组数据,每组数据由字母组成,数量和内容都是随机的。
其中$times是每个字母出现的次数。
现在需要从$data中取20组数据,使这20组数据排重过滤后组成的新数据中,所有字母出现次数总和最小(相比于其他的可能的组合)。
穷举法比较的路子走不通,因为从100组数据中取所有20组数据可能的组合,这个数据量太大。
请问,应该如何获取?

回复内容:

遇到一个算法问题,一直不得求解,恳请大神指点!
现有数据:

<code><?php $data = array(
    array('e', 'l'),
    array('a', 'e', 'g', 'k', 'o', 'v', 'y'),
    array('d', 'g', 'l', 'v', 's', 'j', 'r', 'z', 'y', 'e', 'p', 't', 'w', 'q', 'x', 'i', 'f', 'c'),
    array('c', 'd', 'g', 'i', 'n', 's', 'u'),
    array('b', 'l', 'q', 'n', 't', 'm', 'p', 'x', 'e', 'k', 'd', 'h', 's', 'f', 'g', 'v', 'z', 'o', 'r', 'j'),
    array('l', 't', 'u', 'w'),
    array('c', 'f', 'g', 'h', 'i', 'l', 'n', 'o', 'p', 'q', 'u', 'w', 'y'),
    array('b', 'd', 'e', 'f', 'g', 'i', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'y'),
    array('g', 'a', 's', 'z', 'd', 'w', 'k', 'n', 'h', 'b', 'r'),
    array('j', 'g', 'c', 'u', 'h', 'o', 'w', 'z', 's', 'f', 'e', 'x', 'i', 'k', 'r', 'a', 'y', 't', 'l', 'p', 'q', 'v', 'n', 'b'),
    array('a', 'b', 'g', 'h', 'j', 'k', 'l', 'o', 'p', 'v', 'w', 'x'),
    array('m', 'q', 't', 'e', 'w', 'n', 'l', 'j', 'v', 'x', 'h', 'p', 'b', 'a', 'g', 'f', 'z', 'c', 'd', 'k', 'u', 'o', 's', 'r', 'y', 'i'),
    array('k', 'n', 'p', 'r'),
    array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'n', 'o', 'p', 'q', 'r', 'v', 'x', 'y'),
    array('j', 'k', 'p', 'z', 'g', 'c'),
    array('j', 'c', 'q', 'x', 'z', 'u', 'r', 't', 'm', 'l', 'f', 'n', 'h', 'y', 'w', 'p', 'd', 'k', 'b', 'i', 'a', 'o', 'e'),
    array('a', 'b', 'c', 'd', 'e', 'h', 'j', 'n', 'p', 'q'),
    array('a', 'c', 'd', 'e', 'h', 'i', 'j', 'p', 'q', 'r', 'y'),
    array('m', 'a', 'c', 'p', 't', 'z', 'd', 'u', 'l', 'f'),
    array('b', 'q', 't', 'u', 'w'),
    array('f', 'k', 'o', 'r'),
    array('y', 'n', 'l', 't', 'b', 'j', 'f', 'i', 'k', 'd', 'r', 'o', 'g', 'v', 'c', 'a', 'm', 'w', 'z'),
    array('q', 'u', 's', 'p', 'o', 'g', 'h', 'l', 'j', 'y', 'z', 'b'),
    array('c', 'y', 'j', 'v', 'a', 'g', 'f', 'l', 'm', 'z', 'o', 'e', 'u', 'q', 'k', 'n'),
    array('e', 'y', 'i', 'z', 'g', 'x', 'd', 's', 'h', 'w', 'j', 'b', 'm', 'v', 'u', 'a', 'k', 'n', 'r', 'q', 'p', 'f', 'o', 't', 'c'),
    array('a', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 'u', 'v', 'w', 'x', 'y'),
    array('b', 'g', 'h', 'i', 'j', 'l', 'm', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y'),
    array('n', 'b', 'c', 'i', 'o', 'k', 'g', 's', 'e', 't', 'w', 'z', 'a', 'l', 'j', 'u', 'h'),
    array('a', 'd', 'i', 'k', 'r', 'y'),
    array('e', 'f', 'g', 'j', 'l', 'n', 'o', 'r', 't', 'u', 'w', 'x'),
    array('t', 's', 'n', 'f', 'w', 'm', 'u', 'l', 'o', 'z', 'g', 'y', 'a', 'j', 'q', 'v', 'h', 'k', 'c', 'd'),
    array('q', 'g', 'b', 'p', 'z', 'i', 's', 'm', 'k', 'c', 'y', 'w', 'e', 'h'),
    array('h', 'x', 'r', 'e', 'f', 'b', 'd', 'n', 's', 'j', 'k', 'a', 'p', 'z', 'm', 'o', 'y', 'v', 'c', 'w', 't', 'g', 'u'),
    array('d', 'e', 'h', 'm', 'p'),
    array('u', 'm', 'd', 'k', 't', 'l', 'y', 'o', 'e', 'x', 'z', 'w', 'g', 'h', 'i', 'v', 'j', 'f', 'p', 'a', 'q', 'c', 'b', 'n', 's', 'r'),
    array('g', 'l', 's', 'y'),
    array('w', 'j', 'u', 's', 'h', 'i', 'z', 'o', 'm', 'r', 'v'),
    array('f', 'o', 'q', 'h', 'x', 's', 'w', 'g', 'p', 'd', 'l', 'j', 'k', 'c', 'n', 'e', 'i', 'z', 't', 'y', 'b', 'm'),
    array('n', 't', 'h', 'v', 'i', 'j', 'g', 'u', 'x', 'z', 'c', 'k'),
    array('h', 'e', 'r', 'z', 'w', 's', 'b'),
    array('k', 'i', 'w', 'm', 'g', 'a', 'r', 'n', 'y', 'x', 't', 'v', 'h', 'b', 'e', 'd', 'j', 'f', 'u', 'q', 's', 'p', 'c', 'z', 'o', 'l'),
    array('a', 'c', 'd', 'h', 'i', 'k', 'p', 'r', 'v', 'w', 'y'),
    array('m', 'a', 'n', 't', 'i', 'u', 'h', 'd', 'b', 'v', 'x', 'z', 'w', 'g', 's', 'y', 'j', 'l', 'e', 'o', 'c'),
    array('y', 't', 'r', 'w', 'n', 'u', 'z'),
    array('z', 'b', 'q', 'i', 'm', 'v', 't', 'h', 'a', 'k', 'e', 'o', 'w', 'f', 's', 'g', 'l', 'd', 'y', 'n', 'c', 'x', 'r', 'p', 'u', 'j'),
    array('b', 'c', 'e', 'h', 'k', 'l', 'n', 'o', 'p', 'q', 'v'),
    array('a', 'e', 'h', 'k', 'n', 'p', 'q', 'r', 't', 'x', 'y'),
    array('j', 'u', 'v', 'm', 'g', 'l', 'f', 'z', 'a', 'd', 'n', 'b', 'h', 'q', 'c', 'y', 'w'),
    array('g', 'j', 'r', 'u'),
    array('c', 'd', 'e', 'h', 'i', 'k', 'l', 'o', 'p', 'q', 'r', 'u', 'v', 'y'),
    array('y', 't', 'u', 'n', 'f', 'z', 'r', 'c', 'i', 'v', 'o', 'j', 'g', 'p', 'b', 'h', 'w', 'm', 'e', 'k', 'l', 's', 'd', 'q'),
    array('d', 'f', 'g', 'i', 'j', 'o', 'q', 'u', 'x'),
    array('a', 'b', 'c', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'p', 'q', 't', 'u', 'x'),
    array('p', 'u', 'r', 'y', 'v', 'l', 'b', 'n', 'z', 'k', 'q', 'm', 'a', 't', 'e', 'c'),
    array('k', 'j', 'x', 'v', 'p', 'd', 't', 'f', 'l', 's', 'c', 'z', 'b'),
    array('j', 'm', 't', 'e', 'v', 'u', 'k', 'w', 'c', 'b', 'q', 'y', 'o', 'i', 'p', 'h', 'g', 'z', 'd', 's', 'f', 'l', 'r', 'n'),
    array('a', 'r', 's'),
    array('n', 'd', 'e', 'g', 'r', 's', 'o', 'm', 'j', 'v', 't', 'x', 'z', 'a', 'i', 'y', 'f', 'k', 'h'),
    array('b', 'x', 'k', 'j', 'o', 'g', 'm', 'c', 'i', 'q', 'r', 'h', 'e', 'p', 'w', 'a', 'd', 'v', 'z'),
    array('x', 'o', 'l', 'z', 'j', 'h', 'y', 'g', 'k', 'u', 'p', 's', 'v', 'q', 'm', 'a', 'n', 'i', 't', 'b', 'e', 'd', 'c', 'f', 'r'),
    array('h', 'i', 'm', 'o', 'x', 'y'),
    array('m', 'y', 'n', 'p', 'l', 'e', 'o', 't', 'r', 'q', 'v', 'd', 'z'),
    array('a', 'c', 'd', 'f', 'g', 'h', 'i', 'j', 'k', 'o', 'p', 'q', 's', 'u', 'w', 'x'),
    array('a', 'd', 'h', 'i', 'j', 'l', 'm', 'n', 'o', 'r', 's', 'w', 'x', 'y'),
    array('f', 'k', 'l', 'y', 'p', 'e', 'n', 'j', 'v', 's', 't', 'm', 'd', 'x', 'z', 'r', 'i'),
    array('e', 'y', 'v', 't', 'x', 'r', 'k', 'n', 'p', 'm', 'i', 'z', 'j', 'l', 'c', 'g'),
    array('x', 'z', 'r', 'c', 'n', 'q', 'h', 'j', 'a', 'l'),
    array('p', 'z', 'x', 'm', 'r'),
    array('s', 'r', 'x', 'l', 'b', 'e', 't', 'g', 'y', 'w', 'm', 'z', 'o', 'a', 'v', 'i', 'q', 'd', 'p', 'c'),
    array('s', 'g', 'u', 'd', 'n', 'm', 't', 'a', 'y', 'x', 'w', 'v', 'r', 'l', 'f', 'z', 'q', 'j', 'k', 'e', 'p', 'h', 'b'),
    array('h', 'y', 'j', 'o', 'k', 'z', 'e', 'a', 'r', 'f', 'c'),
    array('z', 'm', 's'),
    array('c', 'd', 'e', 'f', 'g', 'j', 'l', 'm', 'o', 'q', 'r', 's', 't', 'u', 'v'),
    array('w', 'c', 'q', 'j', 'i', 'b', 'v', 'a', 'k', 'z', 'm', 'g', 'n', 'l', 's', 'd', 'u', 't', 'e', 'f', 'r', 'x'),
    array('a', 'o', 'k', 'd', 'm', 'q', 'p', 'e', 'r', 's', 'z', 'y'),
    array('a', 'c', 'f', 'g', 'h', 'j', 'n', 'q', 'r', 'u', 'x'),
    array('x', 'z', 'd', 's', 'f', 'i', 'e', 'h', 'c', 'j'),
    array('h', 'i', 'y'),
    array('z', 's', 'm', 'i', 'o', 'c', 'd', 'j', 'f', 't', 'p', 'h', 'q', 'x', 'r', 'e', 'k'),
    array('t', 'b', 'f', 'q', 'c', 'i', 'd', 'v', 'm', 'k', 'n', 's', 'e', 'p', 'x', 'h', 'z', 'y', 'r'),
    array('c', 'j', 'l', 'o', 'r'),
    array('z', 'd'),
    array('z', 'o', 'e', 'y', 'b', 'd', 'l', 'w', 'v'),
    array('k', 'd', 'z', 'o', 'm', 'c', 'i', 'n', 'p', 'x', 'e', 'y', 'w', 'b', 'f', 'h', 'r', 'g', 'q', 's', 'v'),
    array('k', 's'),
    array('o', 'g', 'z', 'b', 'm', 'n', 'u', 'w', 'q', 's', 't', 'i', 'c', 'h', 'd', 'x', 'f', 'y', 'a', 'k'),
    array('a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x'),
    array('a', 'x', 't', 'm', 'l', 'i', 'v', 'd', 'y', 'n', 'q', 'o', 'h', 's', 'c', 'b', 'g', 'u', 'z', 'e', 'k', 'j', 'p'),
    array('j', 'k', 'p', 'z', 'u', 'q', 'n', 't', 'm', 'f', 'i', 'h', 'l', 'c', 'x', 'a', 'e', 'v', 'b', 's', 'r', 'y', 'w', 'd', 'g', 'o'),
    array('l', 'm', 'v', 'y'),
    array('c', 'f', 'h', 'i', 'j', 'n', 'p', 'q', 's', 't', 'w', 'x'),
    array('d', 'm', 's'),
    array('h', 'w', 'x', 'u', 'e', 'r', 'd', 'i', 'k', 'j', 'a', 'l', 'g', 'y', 'b', 'f', 't', 'n', 'o', 's', 'q', 'z', 'm', 'v'),
    array('f', 'y'),
    array('d', 'f', 'i', 'p', 'u'),
    array('a', 'b', 'j', 'm', 'r'),
    array('n', 'h', 'd', 'z', 'e', 'v', 'x', 'j', 'f', 'b', 'q', 'r', 'y', 'c', 'w', 'k', 'm'),
    array('x', 'y', 'q', 'h', 'w', 'r', 's', 'g', 'j', 'z', 'e', 'v', 'u', 'p'),
    array('h', 'w', 'm', 'l', 'f', 'p', 'a', 'v', 'b', 'q', 'g', 'y', 'c', 'u', 'r', 't', 'j', 'o', 'k', 'z', 'x', 'n', 'e', 'i', 's'),
    array('i', 'u'),
);
$times = array(
    'a' => 29,
    'b' => 11,
    'c' => 33,
    'd' => 84,
    'e' => 46,
    'f' => 67,
    'g' => 19,
    'h' => 18,
    'i' => 88,
    'j' => 8,
    'k' => 54,
    'l' => 86,
    'm' => 88,
    'n' => 29,
    'o' => 96,
    'p' => 1,
    'q' => 4,
    'r' => 100,
    's' => 89,
    't' => 44,
    'u' => 53,
    'v' => 68,
    'w' => 12,
    'x' => 54,
    'y' => 23,
    'z' => 78,
);
?></code>
登入後複製
登入後複製

其中$data包含100组数据,每组数据由字母组成,数量和内容都是随机的。
其中$times是每个字母出现的次数。
现在需要从$data中取20组数据,使这20组数据排重过滤后组成的新数据中,所有字母出现次数总和最小(相比于其他的可能的组合)。
穷举法比较的路子走不通,因为从100组数据中取所有20组数据可能的组合,这个数据量太大。
请问,应该如何获取?

<code><?php $startMemoryUsage = memory_get_usage();
$startTimeStamp = microtime(true);
$data = array(
    array('e', 'l'),
    array('a', 'e', 'g', 'k', 'o', 'v', 'y'),
    array('d', 'g', 'l', 'v', 's', 'j', 'r', 'z', 'y', 'e', 'p', 't', 'w', 'q', 'x', 'i', 'f', 'c'),
    array('c', 'd', 'g', 'i', 'n', 's', 'u'),
    array('b', 'l', 'q', 'n', 't', 'm', 'p', 'x', 'e', 'k', 'd', 'h', 's', 'f', 'g', 'v', 'z', 'o', 'r', 'j'),
    array('l', 't', 'u', 'w'),
    array('c', 'f', 'g', 'h', 'i', 'l', 'n', 'o', 'p', 'q', 'u', 'w', 'y'),
    array('b', 'd', 'e', 'f', 'g', 'i', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'y'),
    array('g', 'a', 's', 'z', 'd', 'w', 'k', 'n', 'h', 'b', 'r'),
    array('j', 'g', 'c', 'u', 'h', 'o', 'w', 'z', 's', 'f', 'e', 'x', 'i', 'k', 'r', 'a', 'y', 't', 'l', 'p', 'q', 'v', 'n', 'b'),
    array('a', 'b', 'g', 'h', 'j', 'k', 'l', 'o', 'p', 'v', 'w', 'x'),
    array('m', 'q', 't', 'e', 'w', 'n', 'l', 'j', 'v', 'x', 'h', 'p', 'b', 'a', 'g', 'f', 'z', 'c', 'd', 'k', 'u', 'o', 's', 'r', 'y', 'i'),
    array('k', 'n', 'p', 'r'),
    array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'n', 'o', 'p', 'q', 'r', 'v', 'x', 'y'),
    array('j', 'k', 'p', 'z', 'g', 'c'),
    array('j', 'c', 'q', 'x', 'z', 'u', 'r', 't', 'm', 'l', 'f', 'n', 'h', 'y', 'w', 'p', 'd', 'k', 'b', 'i', 'a', 'o', 'e'),
    array('a', 'b', 'c', 'd', 'e', 'h', 'j', 'n', 'p', 'q'),
    array('a', 'c', 'd', 'e', 'h', 'i', 'j', 'p', 'q', 'r', 'y'),
    array('m', 'a', 'c', 'p', 't', 'z', 'd', 'u', 'l', 'f'),
    array('b', 'q', 't', 'u', 'w'),
    array('f', 'k', 'o', 'r'),
    array('y', 'n', 'l', 't', 'b', 'j', 'f', 'i', 'k', 'd', 'r', 'o', 'g', 'v', 'c', 'a', 'm', 'w', 'z'),
    array('q', 'u', 's', 'p', 'o', 'g', 'h', 'l', 'j', 'y', 'z', 'b'),
    array('c', 'y', 'j', 'v', 'a', 'g', 'f', 'l', 'm', 'z', 'o', 'e', 'u', 'q', 'k', 'n'),
    array('e', 'y', 'i', 'z', 'g', 'x', 'd', 's', 'h', 'w', 'j', 'b', 'm', 'v', 'u', 'a', 'k', 'n', 'r', 'q', 'p', 'f', 'o', 't', 'c'),
    array('a', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 'u', 'v', 'w', 'x', 'y'),
    array('b', 'g', 'h', 'i', 'j', 'l', 'm', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y'),
    array('n', 'b', 'c', 'i', 'o', 'k', 'g', 's', 'e', 't', 'w', 'z', 'a', 'l', 'j', 'u', 'h'),
    array('a', 'd', 'i', 'k', 'r', 'y'),
    array('e', 'f', 'g', 'j', 'l', 'n', 'o', 'r', 't', 'u', 'w', 'x'),
    array('t', 's', 'n', 'f', 'w', 'm', 'u', 'l', 'o', 'z', 'g', 'y', 'a', 'j', 'q', 'v', 'h', 'k', 'c', 'd'),
    array('q', 'g', 'b', 'p', 'z', 'i', 's', 'm', 'k', 'c', 'y', 'w', 'e', 'h'),
    array('h', 'x', 'r', 'e', 'f', 'b', 'd', 'n', 's', 'j', 'k', 'a', 'p', 'z', 'm', 'o', 'y', 'v', 'c', 'w', 't', 'g', 'u'),
    array('d', 'e', 'h', 'm', 'p'),
    array('u', 'm', 'd', 'k', 't', 'l', 'y', 'o', 'e', 'x', 'z', 'w', 'g', 'h', 'i', 'v', 'j', 'f', 'p', 'a', 'q', 'c', 'b', 'n', 's', 'r'),
    array('g', 'l', 's', 'y'),
    array('w', 'j', 'u', 's', 'h', 'i', 'z', 'o', 'm', 'r', 'v'),
    array('f', 'o', 'q', 'h', 'x', 's', 'w', 'g', 'p', 'd', 'l', 'j', 'k', 'c', 'n', 'e', 'i', 'z', 't', 'y', 'b', 'm'),
    array('n', 't', 'h', 'v', 'i', 'j', 'g', 'u', 'x', 'z', 'c', 'k'),
    array('h', 'e', 'r', 'z', 'w', 's', 'b'),
    array('k', 'i', 'w', 'm', 'g', 'a', 'r', 'n', 'y', 'x', 't', 'v', 'h', 'b', 'e', 'd', 'j', 'f', 'u', 'q', 's', 'p', 'c', 'z', 'o', 'l'),
    array('a', 'c', 'd', 'h', 'i', 'k', 'p', 'r', 'v', 'w', 'y'),
    array('m', 'a', 'n', 't', 'i', 'u', 'h', 'd', 'b', 'v', 'x', 'z', 'w', 'g', 's', 'y', 'j', 'l', 'e', 'o', 'c'),
    array('y', 't', 'r', 'w', 'n', 'u', 'z'),
    array('z', 'b', 'q', 'i', 'm', 'v', 't', 'h', 'a', 'k', 'e', 'o', 'w', 'f', 's', 'g', 'l', 'd', 'y', 'n', 'c', 'x', 'r', 'p', 'u', 'j'),
    array('b', 'c', 'e', 'h', 'k', 'l', 'n', 'o', 'p', 'q', 'v'),
    array('a', 'e', 'h', 'k', 'n', 'p', 'q', 'r', 't', 'x', 'y'),
    array('j', 'u', 'v', 'm', 'g', 'l', 'f', 'z', 'a', 'd', 'n', 'b', 'h', 'q', 'c', 'y', 'w'),
    array('g', 'j', 'r', 'u'),
    array('c', 'd', 'e', 'h', 'i', 'k', 'l', 'o', 'p', 'q', 'r', 'u', 'v', 'y'),
    array('y', 't', 'u', 'n', 'f', 'z', 'r', 'c', 'i', 'v', 'o', 'j', 'g', 'p', 'b', 'h', 'w', 'm', 'e', 'k', 'l', 's', 'd', 'q'),
    array('d', 'f', 'g', 'i', 'j', 'o', 'q', 'u', 'x'),
    array('a', 'b', 'c', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'p', 'q', 't', 'u', 'x'),
    array('p', 'u', 'r', 'y', 'v', 'l', 'b', 'n', 'z', 'k', 'q', 'm', 'a', 't', 'e', 'c'),
    array('k', 'j', 'x', 'v', 'p', 'd', 't', 'f', 'l', 's', 'c', 'z', 'b'),
    array('j', 'm', 't', 'e', 'v', 'u', 'k', 'w', 'c', 'b', 'q', 'y', 'o', 'i', 'p', 'h', 'g', 'z', 'd', 's', 'f', 'l', 'r', 'n'),
    array('a', 'r', 's'),
    array('n', 'd', 'e', 'g', 'r', 's', 'o', 'm', 'j', 'v', 't', 'x', 'z', 'a', 'i', 'y', 'f', 'k', 'h'),
    array('b', 'x', 'k', 'j', 'o', 'g', 'm', 'c', 'i', 'q', 'r', 'h', 'e', 'p', 'w', 'a', 'd', 'v', 'z'),
    array('x', 'o', 'l', 'z', 'j', 'h', 'y', 'g', 'k', 'u', 'p', 's', 'v', 'q', 'm', 'a', 'n', 'i', 't', 'b', 'e', 'd', 'c', 'f', 'r'),
    array('h', 'i', 'm', 'o', 'x', 'y'),
    array('m', 'y', 'n', 'p', 'l', 'e', 'o', 't', 'r', 'q', 'v', 'd', 'z'),
    array('a', 'c', 'd', 'f', 'g', 'h', 'i', 'j', 'k', 'o', 'p', 'q', 's', 'u', 'w', 'x'),
    array('a', 'd', 'h', 'i', 'j', 'l', 'm', 'n', 'o', 'r', 's', 'w', 'x', 'y'),
    array('f', 'k', 'l', 'y', 'p', 'e', 'n', 'j', 'v', 's', 't', 'm', 'd', 'x', 'z', 'r', 'i'),
    array('e', 'y', 'v', 't', 'x', 'r', 'k', 'n', 'p', 'm', 'i', 'z', 'j', 'l', 'c', 'g'),
    array('x', 'z', 'r', 'c', 'n', 'q', 'h', 'j', 'a', 'l'),
    array('p', 'z', 'x', 'm', 'r'),
    array('s', 'r', 'x', 'l', 'b', 'e', 't', 'g', 'y', 'w', 'm', 'z', 'o', 'a', 'v', 'i', 'q', 'd', 'p', 'c'),
    array('s', 'g', 'u', 'd', 'n', 'm', 't', 'a', 'y', 'x', 'w', 'v', 'r', 'l', 'f', 'z', 'q', 'j', 'k', 'e', 'p', 'h', 'b'),
    array('h', 'y', 'j', 'o', 'k', 'z', 'e', 'a', 'r', 'f', 'c'),
    array('z', 'm', 's'),
    array('c', 'd', 'e', 'f', 'g', 'j', 'l', 'm', 'o', 'q', 'r', 's', 't', 'u', 'v'),
    array('w', 'c', 'q', 'j', 'i', 'b', 'v', 'a', 'k', 'z', 'm', 'g', 'n', 'l', 's', 'd', 'u', 't', 'e', 'f', 'r', 'x'),
    array('a', 'o', 'k', 'd', 'm', 'q', 'p', 'e', 'r', 's', 'z', 'y'),
    array('a', 'c', 'f', 'g', 'h', 'j', 'n', 'q', 'r', 'u', 'x'),
    array('x', 'z', 'd', 's', 'f', 'i', 'e', 'h', 'c', 'j'),
    array('h', 'i', 'y'),
    array('z', 's', 'm', 'i', 'o', 'c', 'd', 'j', 'f', 't', 'p', 'h', 'q', 'x', 'r', 'e', 'k'),
    array('t', 'b', 'f', 'q', 'c', 'i', 'd', 'v', 'm', 'k', 'n', 's', 'e', 'p', 'x', 'h', 'z', 'y', 'r'),
    array('c', 'j', 'l', 'o', 'r'),
    array('z', 'd'),
    array('z', 'o', 'e', 'y', 'b', 'd', 'l', 'w', 'v'),
    array('k', 'd', 'z', 'o', 'm', 'c', 'i', 'n', 'p', 'x', 'e', 'y', 'w', 'b', 'f', 'h', 'r', 'g', 'q', 's', 'v'),
    array('k', 's'),
    array('o', 'g', 'z', 'b', 'm', 'n', 'u', 'w', 'q', 's', 't', 'i', 'c', 'h', 'd', 'x', 'f', 'y', 'a', 'k'),
    array('a', 'b', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x'),
    array('a', 'x', 't', 'm', 'l', 'i', 'v', 'd', 'y', 'n', 'q', 'o', 'h', 's', 'c', 'b', 'g', 'u', 'z', 'e', 'k', 'j', 'p'),
    array('j', 'k', 'p', 'z', 'u', 'q', 'n', 't', 'm', 'f', 'i', 'h', 'l', 'c', 'x', 'a', 'e', 'v', 'b', 's', 'r', 'y', 'w', 'd', 'g', 'o'),
    array('l', 'm', 'v', 'y'),
    array('c', 'f', 'h', 'i', 'j', 'n', 'p', 'q', 's', 't', 'w', 'x'),
    array('d', 'm', 's'),
    array('h', 'w', 'x', 'u', 'e', 'r', 'd', 'i', 'k', 'j', 'a', 'l', 'g', 'y', 'b', 'f', 't', 'n', 'o', 's', 'q', 'z', 'm', 'v'),
    array('f', 'y'),
    array('d', 'f', 'i', 'p', 'u'),
    array('a', 'b', 'j', 'm', 'r'),
    array('n', 'h', 'd', 'z', 'e', 'v', 'x', 'j', 'f', 'b', 'q', 'r', 'y', 'c', 'w', 'k', 'm'),
    array('x', 'y', 'q', 'h', 'w', 'r', 's', 'g', 'j', 'z', 'e', 'v', 'u', 'p'),
    array('h', 'w', 'm', 'l', 'f', 'p', 'a', 'v', 'b', 'q', 'g', 'y', 'c', 'u', 'r', 't', 'j', 'o', 'k', 'z', 'x', 'n', 'e', 'i', 's'),
    array('i', 'u'),
);
$times = array(
    'a' => 29,
    'b' => 11,
    'c' => 33,
    'd' => 84,
    'e' => 46,
    'f' => 67,
    'g' => 19,
    'h' => 18,
    'i' => 88,
    'j' => 8,
    'k' => 54,
    'l' => 86,
    'm' => 88,
    'n' => 29,
    'o' => 96,
    'p' => 1,
    'q' => 4,
    'r' => 100,
    's' => 89,
    't' => 44,
    'u' => 53,
    'v' => 68,
    'w' => 12,
    'x' => 54,
    'y' => 23,
    'z' => 78,
);</code>
登入後複製
<code>/**
 * 算法思路:
 * 1.先排重
 * 2.排重之后的操作见注释
 */


$newData = array();
foreach ($data as $oldKey => $item){
    //去重后
    $removeDuplicatedItem = array_unique($item,SORT_NATURAL);
    $newData[$oldKey] = $removeDuplicatedItem;
}

uasort($newData,function($a,$b){
    $countForA = count($a);
    $countForB = count($b);
    if ($countForA == $countForB){
        return 0;
    }
    
    return ($countForA > $countForB ? 1 : -1);
});

$counter = 0;

$targetData = array();
foreach ($newData as $targetKey =>$newItem){

    $targetData[$targetKey] = $newItem;
    $counter++;
    if($counter == 20){
        break;
    }
}
$endMemoryUsage = memory_get_usage();
$endTimeStamp = microtime(true);
$totalMemoryUsage = $endMemoryUsage - $startMemoryUsage;
$totalTimeStamp = $endTimeStamp - $startTimeStamp;

print_r($totalMemoryUsage);
echo "\n";
print_r($totalTimeStamp);
echo "\n";
print_r($targetData);</code>
登入後複製
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles