Wenn ich richtig verstehe, möchten Sie Spalten zwischen den Daten frei, so dass die Schlüssel Spaltennummer übereinstimmen.
$arr = array(
0 => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
8 => 9,
9 => 10,
);
$csvArray = array();
$maxKey = max(array_keys($arr));
for($i = 0; $i <= $maxKey; $i++){
if(array_key_exists($i, $arr)){
$csvArray[$i] = $arr[$i];
} else {
$csvArray[$i] = null;
}
}
print_r($csvArray);
Demo hier: live demo
zu beschreiben, nur Zyklus durch Anordnung und überprüfen, ob Schlüssel gesetzt ist, wenn ist, dessen Wert auf das nächste Array assing, wenn nicht, weisen null
Optimiert:
$csvArray = array();
$maxKey = max(array_keys($arr));
// ++$i is microscopically faster when going for the long haul; such as 10,000,000 iterations
// Try it for yourself:
// $start = microtime(true);
// for($i=0; $i<10000000; $i++){}
// echo (microtime(true) - $start).' seconds';
for($i = 0; $i <= $maxKey; ++$i){
// we can use isset() because it returns false if the value is null anyways. It is much faster than array_key_exists()
$csvArray[$i] = (isset($arr[$i]) ? $arr[$i] : null);
}
einfach: bauen Sie Ihr Array richtig an erster Stelle. Wenn Sie einen Wert in "Spalte 9" möchten, dann setzen Sie es in den Punkt des Arrays, die Spalte 9, die Index 8. REPRÄSENTIERT ist. –