如何将一个数组拆分为3个数组
问题描述:
我有一个一维数组,如下所示。 (它可以动态地扩展到任何长度)如何将一个数组拆分为3个数组
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
)
)
现在我想将它分成3个数组。我的意思是我想将一个数组分割成3个数组,如下所示。
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
)
)
答
$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;
答
试试这个代码:
<?
$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>';
?>
你原来的数组应该是变量$阵列
+0
我没有看到你在代码中声明'$ array'或'$ i'的地方。 – 2012-04-28 17:40:24
取决于你如何想它分为3个不同的阵列,[array_chunk( )](http://www.php.net/manual/en/function.array-chunk.php)可能会有所帮助。 – drew010 2012-04-28 17:14:30
你想要每个数组包含什么?这个问题并不清楚。你能否提供这个四元素数组的预期输出? – 2012-04-28 17:15:14
我想得到这个输出。阵列 ( [0] =>数组 ( [城市] =>特里凡德琅 [citykey] => ab5416c6 ) [1] =>数组 ( [城市] =>孟买 [citykey] => 47d98024 ) ) 阵列 ( [0] =>数组 ( [城市] =>高知 [citykey] => 85cb7d9c ) ) 阵列 ( [0] =>阵列 ( [城市] =>阿拉普扎 [citykey] => 4d5f200e ) ) – Sunil 2012-04-28 17:19:16