голосование
PHP
Javascript
BASH
HTML
Firebird
Программы
Хостинг
Майнинг
Ресурсы
GIT
SEO
Oracle
Python
Железо
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как изменить позицию элемента массива PHP

Как изменить позицию элементов массива с определённого ключа PHP. Способов несколько. Я долго думал как сделать подобный скрипт. В итоге придумал функцию для смены позиции. В результате работы функции позиция элемента меняется, а следующие элементы массива сдвигаются на один шаг. Не важно где будет элемент массива! Функция пересчитает ключи массива.


$arr = range(1, 10);
/*
change_position()
$arr - основной массив, ключ - позиция, значение - id
$num - номер, который нужно переместить
$pos - позиция, куда нужно переместить
*/
function change_position($arr, $num, $pos)
{	
	$pos -= 1;
	$select_arr[] = $arr[$num];
	unset($arr[$num]);
	$arr1 = array_slice($arr, 0, $pos);
	$arr2 = array_slice($arr, $pos);
	$arr = array_merge($arr1, $select_arr, $arr2);	
	// добавляем 1 к каждому ключу, первый ключ массива равен 1
	foreach($arr as $k => $v)
        {
          $arr_plus[$k + 1] = $v;
          unset($arr[$k]);
        }	
        // в этом случае первый ключ будет равен 0	
	//$arr_plus = array_values($arr);
	 return $arr_plus;
}
$arr1 = change_position($arr, 1, 5);
//print_r($arr);
print_r($arr1);
/*
Вывод:
Array
(
    [1] => 1
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 2
    [6] => 6
    [7] => 7
    [8] => 8
    [9] => 9
    [10] => 10
)
*/

Обратите внимание на вывод массива. Переданная третьим входным параметром число 5 изменит положение значения массива. Половина ключей (6-10) пересчитается. Весь фокус в том, что массив разрезается на 2 части. Потом между двумя отрезанными массивами вставляем элемент массива. Далее происходит сборка всех 3 массивов. О массивах PHP читайте в статье массив в PHP

просмотры: 1283, уровень: лёгкий уровень, рейтинг: 0, дата: 2015-12-26 12:35:22
проголосовать:

Комментарии:






поиск
сайты друзей
банеры
Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://www.2domains.ru домен RU домен RU всего за 99 рублей