<?php $a=array( '0'=>array( 'id'=>'1', 'names'=>'jack', '0'=>'sendone' ), '1'=>array( 'id'=>'3', 'names'=>'tree', '0'=>'sendtwo' ), '2'=>array( 'id'=>'5', 'names'=>'apple', '0'=>'sendtwo' ), ); $new=array(); foreach($a as $k=>$v){ $new[$v[0]][]=$v; } var_dump($new); /* array (size=2) 'sendone' => array (size=1) 0 => array (size=3) 'id' => string '1' (length=1) 'names' => string 'jack' (length=4) 0 => string 'sendone' (length=7) 'sendtwo' => array (size=2) 0 => array (size=3) 'id' => string '3' (length=1) 'names' => string 'tree' (length=4) 0 => string 'sendtwo' (length=7) 1 => array (size=3) 'id' => string '5' (length=1) 'names' => string 'apple' (length=5) 0 => string 'sendtwo' (length=7) */ ?>