2017-09-20 17 views
1

私は挿入配列は

以下のようにやっている事例ID = 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]); 

今私が欲しいものグインにありますtemp配列を$ arrの私の望むインデックスに辿ります。

私の望むインデックスに挿入するのに以下の関数を使用しましたが、望みの結果を得ることができませんでした。

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のインデックスの一時配列にしたい(常に0インデックスで私は:)するarray_unshiftについて知らない)と私の結果配列は次のようになります。

$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