Спасибо @Ellisein за помощь со строкой кода class FunCog(commands.Cog):
. Еще одна вещь, которая помогла мне исправить код, - заменить bot.add_cog("cogs.fun")
в main.py на bot.load_extension("cogs.fun")
!
Для поиска элемента в массиве вы можете использовать функцию array_search
, а для удаления элемента из массива вы можете использовать unset
функция. Пример:
<?php
$hackers = array ('Alan Kay', 'Peter Norvig', 'Linus Trovalds', 'Larry Page');
print_r($hackers);
// Search
$pos = array_search('Linus Trovalds', $hackers);
echo 'Linus Trovalds found at: ' . $pos;
// Remove from array
unset($hackers[$pos]);
print_r($hackers);
Вы можете обратиться к: https://www.php.net/manual/en/ref.array.php для получения дополнительных функций, связанных с массивами.
Хорошо, это немного длиннее, но делает несколько прохладных вещей.
я пытался отфильтровать список электронных писем, но исключить определенные домены и электронные письма.
Сценарий ниже желания...
Первый Вам нужен массив со списком электронных писем, и затем можно добавить определенные домены или отдельные почтовые ящики к спискам исключения.
Затем это произведет список чистых досье в конце.
//list of domains to exclude
$excluded_domains = array(
"domain1.com",
);
//list of emails to exclude
$excluded_emails = array(
"bob@domain2.com",
"joe@domain3.com",
);
function get_domain($email) {
$domain = explode("@", $email);
$domain = $domain[1];
return $domain;
}
//loop through list of emails
foreach($emails as $email) {
//set false flag
$exclude = false;
//extract the domain from the email
$domain = get_domain($email);
//check if the domain is in the exclude domains list
if(in_array($domain, $excluded_domains)){
$exclude = true;
}
//check if the domain is in the exclude emails list
if(in_array($email, $excluded_emails)){
$exclude = true;
}
//if its not excluded add it to the final array
if($exclude == false) {
$clean_email_list[] = $email;
}
$count = $count + 1;
}
print_r($clean_email_list);
Сначала вам нужно найти ключ массива, это можно сделать с помощью array_search()
После этого используйте unset()
<?php
$array = array( 'apple', 'orange', 'pear' );
unset( $array[array_search( 'orange', $array )] );
?>
Прежде всего, как уже было сказано, вы будете использовать методы "array_search()" и "unset()", как показано ниже:-
<?php
$arrayDummy = array( 'aaaa', 'bbbb', 'cccc', 'dddd', 'eeee', 'ffff', 'gggg' );
unset( $arrayDummy[array_search( 'dddd', $arrayDummy )] ); // Index 3 is getting unset here.
print_r( $arrayDummy ); // This will show the indexes as 0, 1, 2, 4, 5, 6.
?>
Теперь, чтобы переиндексировать тот же массив без сортировки значений массива, вам нужно использовать метод "array_values()", как показано ниже:-
<?php
$arrayDummy = array_values( $arrayDummy );
print_r( $arrayDummy ); // Now, you will see the indexes as 0, 1, 2, 3, 4, 5.
?>
Надеюсь, это поможет.