Reputation: 31
I have a one dimensional array as follows. (It may dynamically extend to any length)
Array
(
[0] => Array
(
[city] => Trivandrum
[citykey] => ab5416c6
)
[1] => Array
(
[city] => Kochi
[citykey] => 85cb7d9c
)
[2] => Array
(
[city] => Alappuzha
[citykey] => 4d5f200e
)
[3] => Array
(
[city] => Mumbai
[citykey] => 47d98024
)
)
Now I would like to split it to 3 arrays . I mean I would like to split an array in to 3 arrays as follows.
Array
(
[0] => Array
(
[city] => Trivandrum
[citykey] => ab5416c6
)
[1] => Array
(
[city] => Mumbai
[citykey] => 47d98024
)
)
Array
(
[0] => Array
(
[city] => Kochi
[citykey] => 85cb7d9c
)
)
Array
(
[0] => Array
(
[city] => Alappuzha
[citykey] => 4d5f200e
)
)
Upvotes: 0
Views: 440
Reputation: 14149
$a = range(1,4); // example input array of 4 items
$n = 3; // number of pieces you want in the output array $b
$b = array_fill(0, $n, array());
for($i=0; $i<count($a); $i++) {
$b[$i % $n][] = $a[$i];
}
print_r($b);
// if you need to split them out
list($a1,$a2,$a3) = $b;
Upvotes: 1
Reputation: 533
Try this code:
<?
$i=0;
$array=Array(0=> Array("city" => 'Trivandrum',
"citykey" => 'ab5416c6'
),
1 => Array
(
"city" => 'Kochi',
"citykey" => '85cb7d9c'
),
2 => Array
(
"city" => 'Alappuzha',
"citykey" => '4d5f200e'
),
3 => Array
(
"city" => 'Mumbai',
"citykey" => '47d98024'
)
);
$array_0=array();
$array_1=array();
$array_2=array();
foreach ($array as $value)
{
$name='array_'.$i%3;
$temp[0]=$value;
$$name=array_merge_recursive($$name, $temp);
$i++;
}
echo '<pre>';
print_r($array_0);
print_r($array_1);
print_r($array_2);
echo '</pre>';
?>
Your original array should be in variable $array
Upvotes: 0