Нужен совет

Статус
В этой теме нельзя размещать новые ответы.

skillu

Создатель
Регистрация
12 Сен 2008
Сообщения
17
Реакции
1
Вообщем задача такова: есть числовой массив. Нужно вывести Надпись "Совпадения есть" и если совпадения есть перечилить числа которые совпали. Ну соответственно если совпадений нет, то нужно вывести надпись "Совпадений нет".
Так как я еще чайник в пхп, то вот в голову пришел только следующий код:
PHP:
$array = array (1,2,3,4,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,6,6,93,93);

foreach ($array as $key => $val) {

	for ($key;
	 $key <= count($array);
	 $key++) 
	 {
	 $a = $key+1;
	 	
				
		if ($val == $array[$a]) {
		$array_new[$val] = $val;
		}


	}

}

if (count($array_new) == 0) {
echo 'Совпадений нет';
exit;
}

echo 'Совпали следующие числа:<br>';

foreach ($array_new as $val) {
echo $val . '<br>';
}

Впринципе это все работает, но хотелось бы узнать у грамотных программистов можно ли облегчить код, либо может существует вообще встроенная функция в пхп для этой задачи ? Помогите новичку плз.
з.ы. массив просто ввел как проверочный.
 
как вариант сравнивать размерность изначального массива и массива после вывполнения функции
Для просмотра ссылки Войди или Зарегистрируйся
 
как вариант сравнивать размерность изначального массива и массива после вывполнения функции
Для просмотра ссылки Войди или Зарегистрируйся

конечно спасибо за совет с описанием, но у меня чото тямы не хватает пристыкавать данную функцию к моей задачи (( мож еще варианты какие-нибудь есть ? И еще хотел бы узнать мой код, который я указал достаточно объемен для конкретной задачи ?
 
PHP:
$array = array (1,2,3,4,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,6,6,93,93);
$c = array_combine($array, array_fill(0, count($array), 0));
foreach($array as $v)
	++$c[$v];
print_r($c);
 
PHP:
$array1 = array(1,2,3,4,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,6,6,93,93);
$array2 = array_unique($array1);
$result = array_unique(array_diff_assoc($array1, $array2));
print_r($result);
в результате:
Код:
Array
(
    [4] => 4
    [8] => 5
    [17] => 6
    [22] => 93
)
 
PHP:
$array1 = array(1,2,3,4,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,6,6,93,93);
$array2 = array_unique($array1);
$result = array_unique(array_diff_assoc($array1, $array2));
print_r($result);
в результате:
Код:
Array
(
    [4] => 4
    [8] => 5
    [17] => 6
    [22] => 93
)

спасибо большое, очень красивое решение, жаль не знал про существование array_diff_assoc.
 
Советую скачать справочник функций по php Для просмотра ссылки Войди или Зарегистрируйся, и еще очень полезный справочник Для просмотра ссылки Войди или Зарегистрируйся. Последний в себе содержит очень много всего по веб-разработкам.
Удачи)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху