PHP 将数组循环为多维数组


PHP looping array into a multidimensional array?

我有一个包含 8 个值的简单数组。我想把它变成一个多维数组。目前看起来像这样:

array(8) {
  [0]=>
  int(0)
  [1]=>
  float(100)
  [2]=>
  int(0)
  [3]=>
  int(0)
  [4]=>
  float(0.5)
  [5]=>
  float(53.6)
  [6]=>
  float(32.8)
  [7]=>
  float(9.4)
}

使用上面的值,我希望数组的格式如下:

array[0][0] = 0
array[0][1] = 100
array[1][0] = 0
array[1][1] = 0
array[2][0] = .5
array[2][1] = 53.6

等。

因此,目标是创建一个循环,该循环遍历并将每 2 个值设置为数组中的数组。有什么想法吗?

使用 array_chunk 每 2 个元素拆分数组。

这段代码应该准确地告诉你你要找的东西。

$newArray=array_chunk($oldArray,2,false);

这应该分解成你描述的格式。

$newArray = array();
for ($i=0;$i<count($originalArray);$i+=2) {
   $newArray[] = array($originalArray[$i], $originalArray[$i+1]);
}
$output = array();
for ($i = 0, $j = 0, $n = count($array); $i < $n; $i++) {
  $output[$j][] = $array[$i];
  if ($i % 2 == 1) {
    $j++;
  }
}

或。。。

$output = array();
while ($array) {
  $output[] = array(array_shift($array), array_shift($array));
}

。以及该主题的任何变体。

数组转换:

$a = array(0, 100, 0, 0, 0.5, 53.6, 32.8, 9.4);
$b = array();
$j=0;
foreach ($a as $i => $value) {
    if ($i%2) {
        $b[$j][1] = $value;
        $j++;
    } else {
        $b[$j][0] = $value;
    }
}
echo '<pre>';
var_export($a);
var_export($b);
echo '</pre>';