2017-09-20 4 views
1

I는 제가삽입 배열

아래와 같이 수행하고 예를 들어 식 (409)의 배열에서 특정 ID 검색이
$arr=array(

    array(

     'id'=> 342, 
     'name' =>'srikanth', 
     'age' => 32 
    ), 
    array(

     'id'=> 409, 
     'name' =>'Ashok', 
     'age' => 24 
    ), 
    array(

     'id'=> 314, 
     'name' =>'Chakri', 
     'age' => 25 
    ), 
    array(

     'id'=> 208, 
     'name' =>'saikiran', 
     'age' => 27 
    ) 

); 

이하와 같은 배열을
$key=array_search("409",array_column($arr,"id")); 

와 같은 아래의 임시 변수에 배열을 복사하고 해제하기 : 내가 원하는 것을 이제

$tmp=$arr[$key]; 


unset($arr[$key]); 

하는 기능이다 $ arr에 원하는 인덱스에 temp 배열을 써 넣으십시오.

아래의 기능을 사용하여 원하는 색인에 삽입했지만 원하는 결과를 얻지 못했습니다.

function insertAt($array = [], $item = [], $position = 0) { 
    $previous_items = array_slice($array, 0, $position, true); 
    $next_items  = array_slice($array, $position, NULL, true); 
    return $previous_items + $item + $next_items; 
} 


$arr=insertAt($arr,$tmp,0); 

나는 (0 인덱스에 내가 : array_unshift에 대해 알고하지 항상) 내 결과 배열은 다음과 같아야합니다 0 인덱스에있는 임시 배열을합니다.

$arr=array(

    array(

     'id'=> 409, 
     'name' =>'Ashok', 
     'age' => 24 
    ), 
    array(

     'id'=> 342, 
     'name' =>'srikanth', 
     'age' => 32 
    ), 
    array(

     'id'=> 314, 
     'name' =>'Chakri', 
     'age' => 25 
    ), 
    array(

     'id'=> 208, 
     'name' =>'saikiran', 
     'age' => 27 
    ) 

); 
+0

사용 ['array_splice()'(http://php.net/manual/en/function.array-splice.php). 0 개 이상의 요소를 제거하고 제거 된 요소 대신 0 개 이상의 요소를 삽입합니다. – axiac

답변

3

array_splice() 당신을 위해 작업을 수행합니다

// Find current position 
$key = array_search(409, array_column($arr, 'id')); 

// Get the element 
$tmp = $arr[$key]; 

// Remove it from array 
unset($arr[$key]); 

// Insert it at a new position 
$position = 0; 
$arr = array_splice($arr, $position, 0, array($tmp)); 
+0

완벽한 솔루션 .. +1 –

+0

방금 ​​찾았 어 :) 고마워. – saikiran