0

次のような一次元配列があります。(任意の長さに動的に拡張できます)

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
    )

)
4

2 に答える 2

1
$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;
于 2012-04-28T17:14:35.117 に答える
0

このコードを試してください:

<?
$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>';
?>

元の配列は変数$arrayにある必要があります

于 2012-04-28T17:39:41.177 に答える