Я пытаюсь выполнить какую-то функцию, которая найдет (в следующем массиве) объект с идентификатором 2 и переместит его в начало массива. Вот исходный массив:
Array ( [0] => stdClass Object ( [id] => 177 [startdate] => 2014-08-02 ) [1] => stdClass Object ( [id] => 178 [startdate] => 2014-08-02 ) [2] => stdClass Object ( [id] => 2 [startdate] => 2014-07-28 ) [3] => stdClass Object ( [id] => 82 [startdate] => 2014-07-28 ) [4] => stdClass Object ( [id] => 199 [startdate] => 2013-10-10 ) )
И вот что мне хотелось бы вывести (с перемещенным элементом массива):
Array ( [0] => stdClass Object ( [id] => 2 [startdate] => 2014-07-28 ) [1] => stdClass Object ( [id] => 177 [startdate] => 2014-08-02 ) [2] => stdClass Object ( [id] => 178 [startdate] => 2014-08-02 ) [3] => stdClass Object ( [id] => 82 [startdate] => 2014-07-28 ) [4] => stdClass Object ( [id] => 199 [startdate] => 2013-10-10 ) )
Любая помощь будет оценена по достоинству.
function customShift($array, $id){ foreach($array as $key => $val){ // loop all elements if($val->id == $id){ // check for id $id unset($array[$key]); // unset the $array with id $id array_unshift($array, $val); // unshift the array with $val to push in the beginning of array return $array; // return new $array } } } print_r(customShift($data, 2));
сfunction customShift($array, $id){ foreach($array as $key => $val){ // loop all elements if($val->id == $id){ // check for id $id unset($array[$key]); // unset the $array with id $id array_unshift($array, $val); // unshift the array with $val to push in the beginning of array return $array; // return new $array } } } print_r(customShift($data, 2));