Autor Zpráva
Svains
Profil *
Ahoj,

mám pole [0] => {[type] => 'barva', [value] => 'zelena'} [1] => {[type] => 'barva', [value] => 'modrá'} [2] => {[type] => 'velikost', [value] => 'XL'} atd. a potřebuju dostat pole typu [barva] => zelena, modra [velikost] => XL
joejoe
Profil *
na razeni poli je imho nejlip pouzitelna funkce usort($pole, $jmeno_porovnavaci_funkce);

tohle bych nepojmenoval jako serazeni, ale spis jako transformace

udelal bych to priblizne takhle: (ale netestoval jsem to)

$nove_pole = array();

foreach ($pole as $key => $value) {
if (isset($nove_pole[$key])) {
array_push($nove_pole[$key], $value);
} else {
$nove_pole[$key] = array($value);
}

}
print_r($nove_pole);
Svains
Profil *
Vypada to pekne, zkusim to. Diky.
Svains
Profil *
Tak sem zkusil tohle:

foreach($result as $keyn => $valuen) {
foreach ($valuen as $key => $value) {

if (!isset($new[$key])) { $new[$key] = array(); }
$new[$key][] = $value;

}
}

a dostal pole:

array(2) {
["parameter_name"]=>
array(4) {
[0]=>
string(5) "Barva"
[1]=>
string(5) "Barva"
[2]=>
string(8) "Velikost"
[3]=>
string(8) "Velikost"
}
["variable_value"]=>
array(4) {
[0]=>
string(9) "Červená"
[1]=>
string(7) "Zelená"
[2]=>
string(2) "XL"
[3]=>
string(4) "XXXL"
}
}

ale nevim jak dál.

Potřebuju pole: array(barva => array(Zelená, modrá, červená), velikost => array(XL, XXL, XXXXXL));
tiso
Profil

$array_new=array();
foreach ($array_old as $key => $val){
$array_new[$key][]=$val;
}
Svains
Profil *
No takhle se to akorát ještě o jedno pole zanoří, ale nesetřídí se to..
tiso
Profil
sorry, vynechal som jeden krok:
$array_new=array();

foreach ($array_old as $val){
$array_new[$val['type']][]=$val['value'];
}
Svains
Profil *
Skvěle, díky. Sice sem to musel podstatne upravit, ale bez tebe bych na to nepřišel.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: