За последние 24 часа нас посетили 22314 программистов и 1033 робота. Сейчас ищет 641 программист ...

Как правильно переместить ключ массива, со сдвигом.

Тема в разделе "PHP для новичков", создана пользователем Artur_hopf, 19 июн 2020.

  1. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Есть многомерный массив, нужно найти и переместить содержимое на второе место.
    Пока сделал так, но на первое место и муторно.
    PHP:
    1. $key = array_search(3201, array_column($container, 'number'));
    2. if($key !== false)
    3. {
    4.       $adm = $container[$key];
    5.       unset($container[$key]);
    6.       array_unshift($container, $adm);
    7. }
    Как это грамотно делается то?)
    Найти, переместить на второе место, остальное сдвинуть вниз.
     
  2. brevis

    brevis Активный пользователь

    С нами с:
    23 июл 2019
    Сообщения:
    69
    Симпатии:
    20
    Можно сделать с помощью array_splice:
    PHP:
    1. $container = [
    2.     ['number' => 1],
    3.     ['number' => 2],
    4.     ['number' => 3],
    5.     ['number' => 3201],
    6.     ['number' => 4],
    7.     ['number' => 5],
    8.     ['number' => 6],
    9. ];
    10.  
    11. $key = array_search(3201, array_column($container, 'number'));
    12. if ($key !== false)
    13. {
    14.     $adm = $container[$key];
    15.     unset($container[$key]);
    16.     array_splice($container, 1, 0, [$adm]);
    17. }
    18.  
    19. print_r($container);
     
    #2 brevis, 19 июн 2020
    Последнее редактирование: 19 июн 2020
    Artur_hopf нравится это.