Перейти к содержимому

MOAB

* * * * * 1 Голосов

Решено: Запутался в логике


  • Войдите, чтобы ответить
Сообщений в теме: 4

#1 azsx

azsx

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 4 878 сообщений
3 055

Отправлено 26 Июль 2018 - 13:42

Есть два массива. И третий для вывода
<?php
$m_1 = array('а','б','в','г','д','е','ё','ж','з','к','л','м','н');
$m_2 = array('б','д','ж');
$m_3 = array();
*** тут я как в тумане
print_r ($m_3);
?>
мне надо чтобы я получил вот такой вывод
б в г
д е ё
ж з к л м н

Всю голову сломал, логику понять не могу :(
Может кто наставить на путь истинный?
зы
пример сильно упрощён, но понять я именно это не могу.

#2 Илья

Илья

    Матаноадептикс

  • Основатель
  • PipPipPipPipPip
  • 1 608 сообщений
1 900
  • Изгалактики Мле́чный Путь

Отправлено 26 Июль 2018 - 14:45

А что с 0 элементом?

Вот, если в лоб:

<?php
$m_1 = array('а','б','в','г','д','е','ё','ж','з','к','л','м','н');
$m_2 = array('б','д','ж');
$m_3 = array();
$i = 0;
foreach($m_1 as $value) {
	if (in_array($value, $m_2)) {
		$i++;
	}
	$m_3[$i][] = $value;
}
print_r($m_3);
?>

«функция подсчёта длины каждого вектора в векторе векторов, на выходе вектор длин векторов-векторов» © 先生

#3 azsx

azsx

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 4 878 сообщений
3 055

TC Отправлено 26 Июль 2018 - 15:33

Спасибо. Меня запутало, что индексы не подряд в массиве шли и я уже привык, что всякие встроенные функции без mb_ чаще с utf-8 не работают, чем наоборот. эх я...
Оригинальный пример выводит ошибки, но работает.
<?php
if ( PHP_OS === "Linux") { system('clear'); }
if ( PHP_OS === "WinNT") { system('cls'); }

$m_vrem1 = array('а','','а','б','в','г','д','','е','ё','','ж','з','к','','л','','м','н');
$m_1 = array_diff($m_vrem1, array(''));
$m_vrem2 = array('б','','д','','','ж','','');
$m_2 = array_diff($m_vrem2, array(''));
$m_3 = array();
unset ($m_vrem1, $m_vrem2);

foreach( $m_1 as $value ) {
	    if (in_array($value, $m_2)) {
            $i++;
        }
	    $m_3[$i][] = $value;
}
unset ($value);
//print_r ($m_3);
//print_r (array_keys($m_1));
//print_r (array_keys($m_2));
?>


#4 Илья

Илья

    Матаноадептикс

  • Основатель
  • PipPipPipPipPip
  • 1 608 сообщений
1 900
  • Изгалактики Мле́чный Путь

Отправлено 26 Июль 2018 - 17:52

Что-то у тебя все запутано, ты посмотри стандартные функции array_*...
«функция подсчёта длины каждого вектора в векторе векторов, на выходе вектор длин векторов-векторов» © 先生

#5 Матумба

Матумба

    во имя матана

  • Участник
  • PipPipPipPipPip
  • 4 910 сообщений
6 128
  • ИзКрии

Отправлено 27 Июль 2018 - 01:03

Просмотр сообщенияazsx сказал:

то всякие встроенные функции без mb_ чаще с utf-8 не работают, чем наоборот.
отлично работают. если не забывать сначала mb_internal_encoding("UTF-8"); или указывать кодировку в соответствующих параметрах, чтоб наверняка

рерайт на адекватный похапе (может даже работает, не отлаживал)
<?php

system(PHP_OS === "WinNT" ? 'cls' : 'clear'); // ПЛОХО ЛЕЗТЬ В ЧУЖУЮ КОНСОЛЬ

$m_vrem1 = array('а','','а','б','в','г','д','','е','ё','','ж','з','к','','л','','м','н');
$m_1 = array_filter($m_vrem1, 'strlen');

$m_vrem2 = array('б','','д','','','ж','','');
$m_2 = array_flip(array_filter($m_vrem2, 'strlen'));

$m_3 = array();
$i = 0;
foreach( $m_1 as $value ) {
	if (isset($m_2[$value])) {
		$i++;
	}
	$m_3[$i][] = $value;
}

foreach($m_3 as &$arr) {
	printf("%s\n", implode(' ', $arr));
}

?>

Ах какое блаженство
Знать что я совершенство,
Знать что я идеал.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных



© 2018 SMO&SEO форум «WEBIMHO» — продвижение и создание сайтов, интернет-маркетинг

По вопросам рекламы на форуме и цены на рекламу
Все материалы SEO форума разрешены к копированию только с установкой гиперактивной ссылки на webimho.ru,
тем, кто этого не сделает, мы оторвем руки и ноги и поменяем местами,
а когда выйдем из тюрьмы, опять оторвем и опять поменяем.


Россия, г. Москва

Мы в соцсетях: twitter | вконтакте | facebook | livejournal