SEO продвижение сайтов

Универсальный обход по массиву

Предлагаю вашему вниманию PHP-код - универсальный обходчик любого массива с любым представлением. Используем две функции: 1) функция с циклом (метод ArrFor() в классе) и 2) функция (как аргумент) с оформлением результатов обхода по массиву в цикле.

class Gena
{
	function ArrFor($m0,$m1,$f)//Цикл по массиву
	{
		foreach ($m1 AS $k=>$v) 
		{
			$r.=$f($k,$v,++$i,$m0);//Функция - вид отображения
		}	return $r;	
	}	
}

	//Метка и любые др. данные
	$m0=[
		'met'=>12,
	];
	//Массив данных для обхода
	$m1=[
		'd'=>8, 
		'f'=>10, 
		'g'=>12,
		'h'=>14,
		'i'=>16,
		'j'=>18,
	];//print_r($m1);

	$ob=new Gena();

	//Вариант-1
	echo $ob->ArrFor($m0,$m1,'uni1')."\n";
	function uni1($k,$v,$i,$m0=[])
	{
		return "$i) $k - $v == {$m0['met']}<br>\n";
	}

	//Вариант-2
	echo "<form><select size='3' multiple name='sel[]'>\n".
		$ob->ArrFor($m0,$m1,'uni2').
	"</select></form><br>\n\n";
	function uni2($k,$v,$i,$m0=[])
	{
		$s=($v==$m0['met'])?' selected':'';
		return "\t<option value='$k'$s>$i) $k - $v == {$m0['met']}</option>\n";
	}

	//Вариант-3
	echo "<ul>\n".$ob->ArrFor($m0,$m1,'uni3')."</ul>\n\n";
	function uni3($k,$v,$i,$m0=[])
	{
		return "\t<li>$i) $k - $v == {$m0['met']}</li>\n";
	}
	
	//Вариант-4
	echo "<ul>\n".$ob->ArrFor($m0,$m1,function($k,$v,$i,$m0=[])
	{
		return "\t<li>$i) $k - $v == {$m0['met']}</li>\n";
	})."</ul>\n\n";

	//Вариант-5
	$f=function($k,$v,$i,$m0=[])
	{
		return "\t<li>$i) $k - $v == {$m0['met']}</li>\n";
	};
	echo "<ul>\n".$ob->ArrFor($m0,$m1,$f)."</ul>\n\n";

Предлагаю пять вариантов применения данного метода с различными способами передачи аргумента в качестве функции представления и различными видами представлений результатов обхода массива циклом.

или

   class Gena{

        function superF($m,$n,$f,$ar=[])//Массив, Метка, Функция, Доп. массив
        {
            return $f($m,$n,$ar);//Массив получает функция
        }


        function superForeach($m,$n,$f,$ar=[])//Массив, Метка, Функция, Доп. массив
        {
            $r='';
            foreach($m as $k => $v)
                $r.=$f($k,$v,$n,$ar);            
            return $r;
        }
    }
    

    $G=new Gena;//Создаем объект
    $arr=[1,2,3,4,5,6,12,15,22];//Массив для перебора


    $Gm1=$G->superF($arr, 3, function($m,$n){

        $r=['',0,1]; $n=count($m)-1;
        foreach($m as $k => $v)
        {
            $z=$n!=$k?', ':'';//Запятая
            $r[0].="$k=>$v$z";//Список 
            $r[1]+=$v;        //Сумма
            $r[2]*=$v;        //Факториал        
        }
        return $r;
    });    
    echo "<b>Список:</b> $Gm1[0]<br>\n";
    echo "<b>Сумма:</b> $Gm1[1]<br>\n";
    echo "<b>Факториал:</b> $Gm1[2]<br>\n";



    $Gm2=$G->superForeach($arr, 3, function($k,$v,$n){
        $c=$v!=$n?'':' class="c"';
        return "\t<li$c>$k - $n=$v</li>\n";
    });
    echo "<ul>\n$Gm2</ul>";

Алехин Г.В. 13.02.2022

Добавить комментарий


Защитный код
Обновить

Web-технологии

Событие в JavaScript

Событие в JavaScript - это определённое действие, которые вызвано либо пользователем, либо браузером.

Например:

События мыши:

  • click – происходит, когда кликнули на элемент левой кнопкой мыши (на устройствах с сенсорными экранами оно происходит при касании).
  • contextmenu – происходит, когда кликнули на элемент правой кнопкой мыши.
  • mouseover / mouseout – когда мышь наводится на / покидает элемент.
  • mousedown / mouseup – когда нажали / отжали кнопку мыши на элементе.
  • mousemove – при движении мыши.

События на элементах управления:

  • submit – пользователь отправил форму
  • focus – пользователь фокусируется на элементе, например нажимает на <input type="text" />.
Подробнее...

Универсальный обход по массиву

Предлагаю вашему вниманию PHP-код - универсальный обходчик любого массива с любым представлением. Используем две функции: 1) функция с циклом (метод ArrFor() в классе) и 2) функция (как аргумент) с оформлением результатов обхода по массиву в цикле.

Подробнее...

JavaScript - основы (ES6)

ECMAScript 6 (или ES6) - это новая версия JavaScript 2015г, в которую добавлен новый функционал, которая на сегодня поддерживается всеми современными браузерами.

Переменные и комментарии

JavaScript - не строго типизированный язык. Переменные обозначаются так:

	let name='Геннадий'//Строка
	console.log(name)  //Геннадий - отображается в консоли

	var age=40      //Число(без кавычек) VAR (глобальная) - устарело, не использовать!
	console.log(age)//40 - отображается в консоли

	const prof="Программист"//Это константа
	console.log(prof)//Программист - отображается в консоли

	// - это однострочный комментарий

	/*
		тут 
		многострочные 
		комментарии
	*/

Подробнее...
Интересные статьи

Диалектические противоречия или чего хотят современные женщины

Современная женщина, независимо от доходов и статуса, выбирает мужчину для отношений, который должен обладать рядом черт характера. Именно наличие этих естественных черт характера у мужчины определяют его как достойного для создания пары.

Многие женщины, живущие в современном мире, традиционно имеют как минимум два взаимоисключающих убеждения в отношении взаимодействия с мужчинами для создания такого союза.

Подробнее...

Почему мужчинам опасно регистрировать брак в России

Почему мужчинам опасно регистрировать брак в России

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

Но при этом категорически настаиваю, что официально регистрировать брак в нашей стране для мужчин катастрофически опасно и вот почему...

Подробнее...

День Победы со слезами на глазах...

День Победы со слезами на глазах...

Дорогие друзья, вот и прошёл пожалуй самый светлый праздник для нашей страны, для нашего народа - ДЕНЬ ПОБЕДЫ - 9 мая.

Но, как именно прошёл праздник 75-летия ПОБЕДЫ в этом году, я хочу напомнить сегодня, спустя 4 дня от празднования исторической даты.

У меня такое ощущение, как будто никто не заметил, что ПОЛИЦАИ по всей стране в этот день задерживали, арестовывали и штрафовали именно за память о Победе, за возложение цветов к памятникам нашим павшим героям.

Подробнее...

Оставить заявку

Закрыть
Заполните фрму и отправьте нам заяку
Заполните все обязательные поля*
captcha
Перезагрузить