PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Убрать дубликаты из многомерного массива.
Поиск в теме | Версия для печати
Sound
Отправлено: 19 Февраля, 2018 - 15:38:24
Новичок
Покинул форум
Сообщений всего: 27
Дата рег-ции: Сент. 2012
Помог: 0 раз(а)
Строитель пишет: Sound пишет: как прикрутить сюда проверку правильности e-mail
Проверяйте на наличие символа @ - это самый простой вариант. Можно регулярными выражениями, или пхпшными функциями, но надо ли? Если кто-то не захочет указать свой email, то он итак его не укажет
(напишет что-то типа ert@ert.com) ... С другой стороны - если надо указать правильный email
(например для восстановления пароля) , то юзер сам позаботится о правильности ввода.
Отробатывае вот этот код:
PHP:
скопировать код в буфер обмена
"0" => array ( "0" => "my_mail6@yandex.ru" , "1" => "Ваня" , "2" => "Головко" , "3" => "муж" , "4" => "0" ) , "1" => array ( "0" => "my_mail@yandex.ru" , "1" => "Саша" , "2" => "Немчур" , "3" => "дев" , "4" => "0" ) , "2" => array ( "0" => "my_mail11@mail.ru" , "1" => "Петя" , "2" => "Бинаров" , "3" => "дев" , "4" => "0" ) , "3" => array ( "0" => "my_mail11@mail.ru" , "1" => "Илья" , "2" => "Грицько" , "3" => "муж" , "4" => "0" ) , "4" => array ( "0" => "my_mail@yandex.ru" , "1" => "Виктор" , "2" => "Новиков" , "3" => "муж" , "4" => "0" ) , "5" => array ( "0" => "my_mail5@yandex.ru" , "1" => "Николай" , "2" => "Василенко" , "3" => "дев" , "4" => "0" ) , "6" => array ( "0" => "my_mail3@yandex.ru" , "1" => "Валентин" , "2" => "Цветков" , "3" => "муж" , "4" => "0" ) , "7" => array ( "0" => "my_mail2@yandex.ru" , "1" => "Дмитрий" , "2" => "Колесниченко" , "3" => "муж" , "4" => "0" ) , "8" => array ( "0" => "my_mail11@mail.ru" , "1" => "Максим" , "2" => "Гордиенко" , "3" => "муж" , "4" => "0" ) , "9" => array ( "0" => "my_mail@yandex.ru" , "1" => "Алексей" , "2" => "Никифоров" , "3" => "дев" , "4" => "0" ) , ) ;
return $temp [ $a [ 0] ] = $a ;
} , $array_test ) ;
Вопрос:
1. Как вставить регулярку с проверкой правильности адреса e-mail, ну и соответственно если он не правильный удалить его?(Отредактировано автором: 19 Февраля, 2018 - 15:46:41)
Строитель
Отправлено: 19 Февраля, 2018 - 15:39:56
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014
Откуда: Украина
Помог: 73 раз(а)
Sound пишет: Нужно что бы получилось как-то так:
Ну так ведь и получается:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
"0" => array ( "0" => "my_mail6@yandex.ru" , "1" => "Ваня" , "2" => "Головко" , "3" => "муж" , "4" => "0" ) , "1" => array ( "0" => "my_mail@yandex.ru" , "1" => "Саша" , "2" => "Немчур" , "3" => "дев" , "4" => "0" ) , "2" => array ( "0" => "my_mail11@mail.ru" , "1" => "Петя" , "2" => "Бинаров" , "3" => "дев" , "4" => "0" ) , "3" => array ( "0" => "my_mail11@mail.ru" , "1" => "Илья" , "2" => "Грицько" , "3" => "муж" , "4" => "0" ) , "4" => array ( "0" => "my_mail@yandex.ru" , "1" => "Виктор" , "2" => "Новиков" , "3" => "муж" , "4" => "0" ) , "5" => array ( "0" => "my_mail5@yandex.ru" , "1" => "Николай" , "2" => "Василенко" , "3" => "дев" , "4" => "0" ) , "6" => array ( "0" => "my_mail3@yandex.ru" , "1" => "Валентин" , "2" => "Цветков" , "3" => "муж" , "4" => "0" ) , "7" => array ( "0" => "my_mail2@yandex.ru" , "1" => "Дмитрий" , "2" => "Колесниченко" , "3" => "муж" , "4" => "0" ) , "8" => array ( "0" => "my_mail11@mail.ru" , "1" => "Максим" , "2" => "Гордиенко" , "3" => "муж" , "4" => "0" ) , "9" => array ( "0" => "my_mail@yandex.ru" , "1" => "Алексей" , "2" => "Никифоров" , "3" => "дев" , "4" => 0
) , ) ;
array_map ( function ( $a ) use
( & $temp ) { return $temp [ $a [ 0
] ] = $a ; } , $array_test ) ;
Результат:Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
0 =>
0 => string 'my_mail6@yandex.ru' ( length= 18 )
1 => string 'Ваня' ( length= 8 )
2 => string 'Головко' ( length= 14 )
3 => string 'муж' ( length= 6 )
4 => string '0' ( length= 1)
1 =>
0 => string 'my_mail@yandex.ru' ( length= 17 )
1 => string 'Алексей' ( length= 14 )
2 => string 'Никифоров' ( length= 18 )
3 => string 'дев' ( length= 6 )
4 => string '0' ( length= 1)
2 =>
0 => string 'my_mail11@mail.ru' ( length= 17 )
1 => string 'Максим' ( length= 12 )
2 => string 'Гордиенко' ( length= 18 )
3 => string 'муж' ( length= 6 )
4 => string '0' ( length= 1)
3 =>
0 => string 'my_mail5@yandex.ru' ( length= 18 )
1 => string 'Николай' ( length= 14 )
2 => string 'Василенко' ( length= 18 )
3 => string 'дев' ( length= 6 )
4 => string '0' ( length= 1)
4 =>
0 => string 'my_mail3@yandex.ru' ( length= 18 )
1 => string 'Валентин' ( length= 16 )
2 => string 'Цветков' ( length= 14 )
3 => string 'муж' ( length= 6 )
4 => string '0' ( length= 1)
5 =>
0 => string 'my_mail2@yandex.ru' ( length= 18 )
1 => string 'Дмитрий' ( length= 14 )
2 => string 'Колесниченко' ( length= 24 )
3 => string 'муж' ( length= 6 )
4 => string '0' ( length= 1 )
(Добавление)
Sound пишет: Почему 4 ячейка пустая?
Я же вам выше отвечал - не правильно указан оператор.
Sound
Отправлено: 19 Февраля, 2018 - 15:44:42
Новичок
Покинул форум
Сообщений всего: 27
Дата рег-ции: Сент. 2012
Помог: 0 раз(а)
Строитель пишет: Sound пишет: Нужно что бы получилось как-то так:
Ну так ведь и получается:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
"0" => array ( "0" => "my_mail6@yandex.ru" , "1" => "Ваня" , "2" => "Головко" , "3" => "муж" , "4" => "0" ) , "1" => array ( "0" => "my_mail@yandex.ru" , "1" => "Саша" , "2" => "Немчур" , "3" => "дев" , "4" => "0" ) , "2" => array ( "0" => "my_mail11@mail.ru" , "1" => "Петя" , "2" => "Бинаров" , "3" => "дев" , "4" => "0" ) , "3" => array ( "0" => "my_mail11@mail.ru" , "1" => "Илья" , "2" => "Грицько" , "3" => "муж" , "4" => "0" ) , "4" => array ( "0" => "my_mail@yandex.ru" , "1" => "Виктор" , "2" => "Новиков" , "3" => "муж" , "4" => "0" ) , "5" => array ( "0" => "my_mail5@yandex.ru" , "1" => "Николай" , "2" => "Василенко" , "3" => "дев" , "4" => "0" ) , "6" => array ( "0" => "my_mail3@yandex.ru" , "1" => "Валентин" , "2" => "Цветков" , "3" => "муж" , "4" => "0" ) , "7" => array ( "0" => "my_mail2@yandex.ru" , "1" => "Дмитрий" , "2" => "Колесниченко" , "3" => "муж" , "4" => "0" ) , "8" => array ( "0" => "my_mail11@mail.ru" , "1" => "Максим" , "2" => "Гордиенко" , "3" => "муж" , "4" => "0" ) , "9" => array ( "0" => "my_mail@yandex.ru" , "1" => "Алексей" , "2" => "Никифоров" , "3" => "дев" , "4" => 0
) , ) ;
array_map ( function ( $a ) use
( & $temp ) { return $temp [ $a [ 0
] ] = $a ; } , $array_test ) ;
Результат:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
0 =>
0 => string 'my_mail6@yandex.ru' ( length= 18 )
1 => string 'Ваня' ( length= 8 )
2 => string 'Головко' ( length= 14 )
3 => string 'муж' ( length= 6 )
4 => string '0' ( length= 1)
1 =>
0 => string 'my_mail@yandex.ru' ( length= 17 )
1 => string 'Алексей' ( length= 14 )
2 => string 'Никифоров' ( length= 18 )
3 => string 'дев' ( length= 6 )
4 => string '0' ( length= 1)
2 =>
0 => string 'my_mail11@mail.ru' ( length= 17 )
1 => string 'Максим' ( length= 12 )
2 => string 'Гордиенко' ( length= 18 )
3 => string 'муж' ( length= 6 )
4 => string '0' ( length= 1)
3 =>
0 => string 'my_mail5@yandex.ru' ( length= 18 )
1 => string 'Николай' ( length= 14 )
2 => string 'Василенко' ( length= 18 )
3 => string 'дев' ( length= 6 )
4 => string '0' ( length= 1)
4 =>
0 => string 'my_mail3@yandex.ru' ( length= 18 )
1 => string 'Валентин' ( length= 16 )
2 => string 'Цветков' ( length= 14 )
3 => string 'муж' ( length= 6 )
4 => string '0' ( length= 1)
5 =>
0 => string 'my_mail2@yandex.ru' ( length= 18 )
1 => string 'Дмитрий' ( length= 14 )
2 => string 'Колесниченко' ( length= 24 )
3 => string 'муж' ( length= 6 )
4 => string '0' ( length= 1 )
(Добавление)
Sound пишет: Почему 4 ячейка пустая?
Я же вам выше отвечал - не правильно указан оператор.
Простите не досмотрел, уже поправил.
Sound
Отправлено: 19 Февраля, 2018 - 16:08:43
Новичок
Покинул форум
Сообщений всего: 27
Дата рег-ции: Сент. 2012
Помог: 0 раз(а)
Строитель пишет: Sound пишет: Как вставить регулярку с проверкой правильности адреса e-mail, ну и соответственно если он не правильный удалить его?
Удалить email ? Или удалить всю строку из массива?
Всю строку.
Строитель
Отправлено: 19 Февраля, 2018 - 16:15:38
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014
Откуда: Украина
Помог: 73 раз(а)
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$array_test = [
[ "my_mail6@yandex.ru" , "1" => "Ваня" , "2" => "Головко" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail@yandex.ru" , "1" => "Саша" , "2" => "Немчур" , "3" => "дев" , "4" => "0" ] ,
[ "my_mail11@mail.ru" , "1" => "Петя" , "2" => "Бинаров" , "3" => "дев" , "4" => "0" ] ,
[ "my_mail11@mail.ru" , "1" => "Илья" , "2" => "Грицько" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail@yandex.ru" , "1" => "Виктор" , "2" => "Новиков" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail5@yandex.ru" , "1" => "Николай" , "2" => "Василенко" , "3" => "дев" , "4" => "0" ] ,
[ "my_mail3@yandex.ru" , "1" => "Валентин" , "2" => "Цветков" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail2@yandex.ru" , "1" => "Дмитрий" , "2" => "Колесниченко" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail11@mail.ru" , "1" => "Максим" , "2" => "Гордиенко" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail@yandex.ru" , "1" => "Алексей" , "2" => "Никифоров" , "3" => "дев" , "4" => "0" ]
] ;
if ( preg_match ( '~^[a-z]\w*[a-z\d]@\w+\.[a-z]{2,6}$~i' , $a [ 0
] ) ) { $tmp [ $a [ 0] ] = $a ;
}
} , $array_test ) ;
Sound
Отправлено: 19 Февраля, 2018 - 16:19:30
Новичок
Покинул форум
Сообщений всего: 27
Дата рег-ции: Сент. 2012
Помог: 0 раз(а)
Строитель пишет: Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
$array_test = [
[ "my_mail6@yandex.ru" , "1" => "Ваня" , "2" => "Головко" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail@yandex.ru" , "1" => "Саша" , "2" => "Немчур" , "3" => "дев" , "4" => "0" ] ,
[ "my_mail11@mail.ru" , "1" => "Петя" , "2" => "Бинаров" , "3" => "дев" , "4" => "0" ] ,
[ "my_mail11@mail.ru" , "1" => "Илья" , "2" => "Грицько" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail@yandex.ru" , "1" => "Виктор" , "2" => "Новиков" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail5@yandex.ru" , "1" => "Николай" , "2" => "Василенко" , "3" => "дев" , "4" => "0" ] ,
[ "my_mail3@yandex.ru" , "1" => "Валентин" , "2" => "Цветков" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail2@yandex.ru" , "1" => "Дмитрий" , "2" => "Колесниченко" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail11@mail.ru" , "1" => "Максим" , "2" => "Гордиенко" , "3" => "муж" , "4" => "0" ] ,
[ "my_mail@yandex.ru" , "1" => "Алексей" , "2" => "Никифоров" , "3" => "дев" , "4" => "0" ]
] ;
if ( preg_match ( '~^[a-z]\w*[a-z\d]@\w+\.[a-z]{2,6}$~i' , $a [ 0
] ) ) { $tmp [ $a [ 0] ] = $a ;
}
} , $array_test ) ;
Спасибо большое!
Поиск в теме | Версия для печати
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB