Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
Muhammad97
10 / 10 / 2
Регистрация: 10.11.2013
Сообщений: 238
0

Как обрезать двумерный массив

07.06.2014, 15:21. Просмотров 685. Ответов 8
Метки (Все метки)

Есть массив с матрицей символа:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
11111111111111111100000000
11111111111111111111000000
11111111111111111111100000
11110000000000111111110000
11100000000000001111111000
11100000000000000111111000
11100000000000000011111000
11100000000000000011111000
11100000000000000011111100
11100000000000000011111100
11100000000000000011111000
11100000000000000011111000
11100000000000000111111000
11100000000000000111110000
11100000000000011111100000
11111111111111111111000000
11111111111111111110000000
11111111111111111111100000
11111111111111111111111000
11110000000000001111111100
11100000000000000011111110
11100000000000000001111110
11100000000000000000111111
11100000000000000000011111
11100000000000000000011111
11100000000000000000011111
11100000000000000000011111
11100000000000000000011111
11100000000000000000011111
11100000000000000000111111
11100000000000000000111110
11100000000000000001111110
11100000000000000111111100
11111111111111111111111000
11111111111111111111110000
11111111111111111111100000
11111111111111111100000000
00000000000000000000000000
00000000000000000000000000
Нужно обрезать массив сверху и снизу, то есть срезать строки со всеми нулями. Пытался реализовать так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function cutsymbol($sarray, $sarrayheight)
{
   $strlength = count($sarray[1]);
   $emptystr = createstr('0', $strlength);
 
   $top = 1;
   
 for($y = 1; $y<=$sarrayheight; $y++)
    {                        
      $str=implode('', $sarray[$y]);
      if ($str==$emptystr)
      {
      $top = $y;
      }
      else break;
    }
 
 
   $bottom=$sarrayheight;
   
 for($y = $sarrayheight; $y >= 1; $y--)
    {                        
      $str=implode('', $sarray[$y]);
      if ($str==$emptystr)
      {
      $bottom = $y;
      }
      else break;
    }
    
    $arrayheight=$bottom-$top;
   
  $dest=copyarray($sarray, 1, 1, $strlength, $arrayheight);
  
  return $dest;
  
}
Но выходит следующее:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
1111111111111111111100000
1110000000000111111110000
1100000000000001111111000
1100000000000000111111000
1100000000000000011111000
1100000000000000011111000
1100000000000000011111100
1100000000000000011111100
1100000000000000011111000
1100000000000000011111000
1100000000000000111111000
1100000000000000111110000
1100000000000011111100000
1111111111111111111000000
1111111111111111110000000
1111111111111111111100000
1111111111111111111111000
1110000000000001111111100
1100000000000000011111110
1100000000000000001111110
1100000000000000000111111
1100000000000000000011111
1100000000000000000011111
1100000000000000000011111
1100000000000000000011111
1100000000000000000011111
1100000000000000000011111
1100000000000000000111111
1100000000000000000111110
1100000000000000001111110
1100000000000000111111100
1111111111111111111111000
1111111111111111111110000
1111111111111111111100000
1111111111111111100000000
0000000000000000000000000
0000000000000000000000000
Добавлено через 2 минуты
coppyarray копирует двумерный массив в другой с параметрами $top, $left, $width, $height

Вернуться к обсуждению:
Как обрезать двумерный массив
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2014, 15:21
Готовые ответы и решения:

Как обрезать массив по бокам
Здравствуйте. У меня такая проблема... Дан ассоциативный массив из n элементов...

Есть надобность обрезать массив от начала и до n
Добрый день Есть надобность обрезать массив от начала и до n. суть...

Как отсортировать двумерный массив?
Как отсортировать двумерный массив по полю $data_array_1? Сортировка по...

Как узнать, массив одномерный или двумерный?
Есть ли простая функция? Если нет - то как это сделать на циклах?

Как создать и заполнить двумерный массив, в строках которого числа, а в столбцах - текст?
Скажите, пожалуйста, как создать и заполнить двумерный массив ,в строках...

8
Другие темы раздела
PHP Не отрабатывает функция php http://www.cyberforum.ru/php-beginners/thread1201842.html
Не передаются данные на экране "Нет такого шаблона".function render($path,$param = array()) { extract($param); ob_start(); if(!include($path.".php")) { exit("Нет такого...
PHP Неправильно работает функция strrev Пробую функцию реверс строки, этот код- echo strrev("Hello world!"); // выводит "!dlrow olleH" echo "Всем привет"; // выводит Всем привет echo strrev("Всем привет"); // уже выводит ???????????... http://www.cyberforum.ru/php-beginners/thread1201836.html
Поиск строки в фале и получение номера строки PHP
Как выполнить поиск в фале типа : link1 link2 link3 по части слова (Например "lin") и получить номера всех строк, в которых были найдены совпадения? (Например "1,2,3").
Использование Foreach PHP
Добрый день дорогие форумчане, у меня такой вопрос, я хочу использовать цикл Foreach в свои разработках, так как привык к Foreach при работе с фреймворком CI. Но сейчас пишу приложение на чистом...
PHP Php переадресация http://www.cyberforum.ru/php-beginners/thread1201770.html
Всем Добрый День! Помогите пожалуйста, есть страница index.php, надо сделать так что если session пуст направил на <div id="login">(code): <div class="panel" title="Welcome" id="login"...
PHP Увеличение переменной в сессии Увеличиваю переменную в сессии на 2 и получаю число 6! $_SESSION = "3"; $s = $_SESSION * 2; echo 'У нас число, '.$s."<br>"; Вопрос: каким образом тат можно можно получать не каждый раз 6, а... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru