I have an array consisting same keys. I want to split it by key name. I want to split it by TrackingId. For example following array consist of 3 tracking id i want to make 3 different array.Array as follows-
Array
(
[0] => Array
(
[0] => TrackingId
[1] => 22173753
)
[1] => Array
(
[0] => TrackingIdServ
[1] => 47
)
[2] => Array
(
[0] => MobileNumber
[1] => ***********
)
[3] => Array
(
[0] => TransSubmitter
[1] => TPASUA2
)
[4] => Array
(
[0] => TrackingId
[1] => 22153392
)
[5] => Array
(
[0] => TrackingIdServ
[1] => 47
)
[6] => Array
(
[0] => MobileNumber
[1] => ************
}
[7] => Array
(
[0] => TrackingId
[1] => 1184031
)
68] => Array
(
[0] => TrackingIdServ
[1] => 47
)
[9] => Array
(
[0] => MobileNumber
[1] => ************
)
)
I have done it by this way.
$i=0;
foreach($result as $key){
$i++;
if($key[0]=="TrackingId"){
$loc[]=$i;
$start[]=$i-1;
$end[]=$i-1;
}
$lastKey=$i;
}
$arrLength=count($loc);
$chunks=array();
for($i=0;$i<$arrLength;$i++){
$j=$i+1;
$v=$end[$j]-$lastKey;
if($start[$i]==0){
$chunks[]=array_slice($result,$start[$i],$end[$j]);
}else if($end[$j]=="") {
$chunks[]=array_slice($result,$start[$i],$lastKey);
}else{
$chunks[]=array_slice($result,$start[$i],$v);
}
}
It returns me desired result as follows.
Array
(
[0] => Array
(
[0] => Array
(
[0] => TrackingId
[1] => 22173753
)
[1] => Array
(
[0] => TrackingIdServ
[1] => 47
)
[2] => Array
(
[0] => MobileNumber
[1] => XXXXXXXXXXX
)
[3] => Array
(
[0] => TransSubmitter
[1] => TPASUA2
)
)
[1] => Array
(
[0] => Array
(
[0] => TrackingId
[1] => 1184031
)
[1] => Array
(
[0] => TrackingIdServ
[1] => 47
)
[2] => Array
(
[0] => MobileNumber
[1] => XXXXXXXXXXXX
)
)
[2] => Array
(
[0] => Array
(
[0] => TrackingId
[1] => 22153392
)
[1] => Array
(
[0] => TrackingIdServ
[1] => 47
)
[2] => Array
(
[0] => MobileNumber
[1] => XXXXXXXXXXX
)
)
)