<?php // генератор массива MxM заполненный случайным образом числами от 0 до 9 $count = 5; //Количество строк и столбцов $min = 0; $max = 9; //Функция получения рандомной матрицы function getRandomNumbers($min, $max, $count) { for($i=0;$i<$count;++$i){ for($j=0;$j<$count;++$j){ } } return $array; } //Преобразуем матрицу к необходимому диапазону чисел $matrix = getRandomNumbers($min, $max, $count); //Смотрю полученный массив //Выводим исходный полученный массив в табличный вид echo '<table border="1" cellpadding="5">'; echo '<tr>'; foreach($matrix[$row] as $value) { echo '<td>'.$value.'</td>'; } echo '</tr>'; } echo '</table>'; /* Задание: Сформировать новый массив по правилам: 1) Если в строке встречаются одинаковые числа, то они заменяются на результат произведения этого числа на количество повторений. 2) Если в столбце встречаются одинаковые числа, то они заменяются на результат произведения этого числа на количество повторений. 3) Если число встречается и в строке, и в столбце, то оно заменяется на сумму произведения этого числа на количество повторений в строке и произведения этого числа на количество повторений в столбце. 4) Если число встречает в строке и столбце один раз, то оно переносится без изменений. */ // Транспонируем матрицу и выводим матрицу по заданию foreach ($matrix as $row => $arr) { foreach ($arr as $key => $value){ // И вот тут я затупил как перебрать многомерный массив и применить условия. } } ?>
Отобрать нужный элемент по значению или по ключу?а вот как теперь отобрать нужный элемент и преобразовать не втыкаю.
Всякие array_column и array_search можно попробовать.
www.php.net/manual/ru/ref.array.php
Возможно не поразмыслил, над твоей подсказкой… Еще намекни почему search? если уверен — что нужна в этом действии, я пока сильно туплю ))).
Я запустил ваш код и получил некую таблицу:
<table border="1" cellpadding="5"><tr><td>4</td><td>4</td><td>8</td><td>1</td><td>8</td></tr><tr><td>4</td><td>9</td><td>7</td><td>9</td><td>8</td></tr><tr><td>0</td><td>8</td><td>1</td><td>7</td><td>3</td></tr><tr><td>2</td><td>8</td><td>2</td><td>0</td><td>3</td></tr><tr><td>6</td><td>1</td><td>7</td><td>3</td><td>8</td></tr></table>
Мне интересно, что предполагается получить в результате?
Почитал.
Есть такая штука, как array_count_values
Так вот if(array_count_values($value) > 1){$value = $value * array_count_values($value);}… ну и так далее… ну и так далее
Пожалуйста.
И я вовсе не специалист по массивам. Просто задал в яндексе "найти совпадения в массиве php".
Warning: array_count_values() expects exactly 1 parameter, 2 given
Ожидался один параметр, а прилетело два. У вас должно быть array_count_values($param), а в реальности так array_count_values($param1, $param2)expects exactly 1 parameter, 2 given