Autor Zpráva
Medvídek
Profil
Omlouvám se za možná trochu hloupej dotaz, ale nemůžu přijít na to, jak srovnat pozice jednoho pole podle hodnot v druhém poli.

Mám pole:

$razeni;
Array
(
    [0] => 1
    [1] => 2
    [2] => 0
    [3] => 3
)

$myservices["services"];
Array
(
    [0] => Array
        (
         hodnoty pole
        )

    [1] => Array
        (
        hodnoty pole
        )

    [2] => Array
        (
        hodnoty pole
        )

    [3] => Array
        (
        hodnoty pole
        )

)



A já to pole $myservices["services"] potřebuju seřadit v pořadí podle prvního pole.


Takže výsledek by měl vypadat:

$myservices["services"];
Array
(
    [1] => Array
        (
         hodnoty pole
        )

    [2] => Array
        (
        hodnoty pole
        )

    [0] => Array
        (
        hodnoty pole
        )

    [3] => Array
        (
        hodnoty pole
        )

)


Děkuji za pomoc :)
Segi_L
Profil
Niečo také?

foreach ($razeni as $key=>$value) {
    $myservices_[$value] = $myservices[$value];	
}
if (isset($myservices_))
  $myservices = $myservices_;
Medvídek
Profil
Segi_L:
Takto podobně to mám teď.

Bohužel může nastat případ, že je v tom druhém poli víc položek, než v tom prvním.

Čili můžu mít:
$razeni;
Array
(
    [0] => 1
    [1] => 2
    [2] => 0
    [3] => 3
)

a
$myservices["services"];
array(0=>text, 1=>text, 2=>text, 3=>text, 4=>text, 5=>text, 6=>text, 7=>text);

a to by se mělo srovnat takto:

array(1=>text, 2=>text, 0=>text, 3=>text, 4=>text, 5=>text, 6=>text, 7=>text);
Segi_L
Profil
V tom prípade.
foreach ($razeni as $key=>$value) {
  $myservices_[$value] = $myservices[$value];
  unset($myservices[$value]);	
}
if (isset($myservices_))
{
  $myservices = array_merge($myservices_, $myservices);
}
Medvídek
Profil
Segi_L:
Díky, řazení funguje, ale ještě bych potřeboval, aby se zachovalo i pořadí klíčů. (http://data.69-design.cz/zkus.php)
Segi_L
Profil
Jasne. Ja netušil že to zoradí. V tom prípade
foreach ($razeni as $key=>$value) 
{
  $myservices_[$value] = $myservices[$value];
  unset($myservices[$value]);    
}
foreach ($myservices as $key=>$value) 
{
  $myservices_[$key] = $myservices[$key];    
}

if (isset($myservices_))
  $myservices = $myservices_;
Medvídek
Profil
Segi_L:
Díky, už sem to vyřešil tímto:

$myservices = $myservices_ + $myservices;


Ale díky moc :)
Segi_L
Profil
Super já ani netušil, že sa dá pole i takto spojovať. Zase o niečo mudrejší.

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:

0