Добрый день, есть массив https://pastebin.com/urFwD9Ju , мне нужно первый элемент с option_id = m, переместить перед элементом option_id = 10015 (Модель), подскажите пожалуйста функцию для многомерного массива, или сколько стоит такая помощь, спасибо!
Нашел такие функции: PHP: function array_remove($array, $index) { array_splice($array, $index, 1, array()); return $array; } function array_insert($array, $element, $index) { array_splice($array, $index, 0, array($element)); return $array; } function array_move($array, $from, $to) { $element = $array[$from]; $array = array_remove($array, $from); $array = array_insert($array, $element, $to - 1); return $array; } $array = array_move($array, 0, 4); print_r($array); Работает, но тут нужно знать четкий индекс, а он у меня может быть разный, мне нужно всегда именно перед элементом с option_id = 10015, потом ищу индекс нужного мне элемента PHP: function searchForId($id, $array) { foreach ($array as $key => $val) { if ($val['option_id'] === $id) { return $key; } } return null; } В итогу работает как нужно, но вопрос по скорости работы, на сколько правильно такое решение? Если заранее обработать массив нельзя. Возможно есть какое-то решение проще и быстрее, или это нормальное?
У вас одновременно оба элемента (подмассив с элементом ["option_id"] => "m" и подмассив с элементом ["option_id"] => "10015") могут совершенно в разных местах находиться, я правильно понял?
Можете изменить searchForId() на вот это PHP: function searchForId($id, $array) { return array_search($id, array_column($array, "option_id")); }