我有一个包含 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>';