有没有一种方法可以改善此php代码?
<?php
require __DIR__ . '/vendor/autoload.php';
$unique_emails = [];
$big_array_full_of_emails = [
array('skywalker1@dagobah.jedi', 'chewbacca1@wookies.win'),
array('skywalker1@dagobah.jedi', 'chewbacca1@wookies.win'),
array('skywalker2@dagobah.jedi', 'chewbacca2@wookies.win'),
array('skywalker3@dagobah.jedi', 'chewbacca3@wookies.win'),
array('skywalker4@dagobah.jedi', 'chewbacca4@wookies.win'),
array('skywalker5@dagobah.jedi', 'chewbacca5@wookies.win'),
];
foreach ($big_array_full_of_emails as $arr) {
foreach ($arr as $email) {
if (!in_array($email, $unique_emails)) {
$unique_emails[] = $email;
}
}
}
var_dump($unique_emails);
@little_coder-Kris Roofe发表了我所寻找的想法。只是在寻找可能更有效或更清晰的方法来执行逻辑。
答案 0 :(得分:0)
您可以使用Demo
$result = array_unique(array_reduce($big_array_full_of_emails,"array_merge",[]));
您还可以通过更高效的方式来做到这一点,
$result = [];
array_walk_recursive($big_array_full_of_emails,function($v)use(&$result){$result[$v] = $v;});
如果要使用序列索引,只需添加$result = array_values($result);