Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: 2D-taulukon ulottuvuuksien kääntäminen

herkko [09.02.2008 23:57:40]

#

array_flip_dimensions()-funktio kääntää kaksiulotteisen taulukon ulottuvuudet toisin päin.

Esimerkkitaulukko

A =>
--- 1 => 'ensimmäinen'
--- 2 => 'toinen'
--- 3 => 'kolmas'
B =>
--- 1 => 'neljäs'
--- 2 => 'viides'
--- 3 => 'kuudes
C =>
--- 1 => 'seitsemäs'
--- 2 => 'kahdeksas'
--- 3 => 'yhdeksäs'

kääntyy muotoon

1 =>
--- A => 'ensimmäinen'
--- B => 'neljäs'
--- C => 'seitsemäs'
2 =>
--- A => 'toinen'
--- B => 'viides'
--- C => 'kahdeksas'
3 =>
--- A => 'kolmas'
--- B => 'kuudes'
--- C => 'yhdeksäs'

Itse huomasin tarvitsevani tällaista kun tein tiedostonuploadauslomakkeen, joka lähettää useita tiedostoja yhdessä taulukossa (kentän nimi "file[]"). Taulukko tuli tällöin php:hen muodossa "ominaisuus1->tiedosto1,tiedosto2; ominaisuus2->tiedosto1,tiedosto2", mikä ei mielestäni ollut kovinkaan näppärää. Tämä funktio kääntää kyseisen taulukon niin, että tiedostot on helppo napsia erilleen taulukosta. En tosin tiedä onko tällainen jo PHP:ssa sisäänrakennettuna. Pikaisella vilkaisulla en löytänyt.

// Kääntää kaksiulotteisen taulukon ulottuvuudet toisin päin.
function array_flip_dimensions(array $array) {
	$new_array = array();
	foreach ($array as $key1 => $array2) {
		if (is_array($array2)) {
			foreach ($array2 as $key2 => $value) {
				$new_array[$key2][$key1] = $value;
			}
		}
	}
	return $new_array;
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta