Bonjour,
Pour un array donné, je veux inverser deux valeurs…
Le tableau est de ce style :
array(1) { [0]=> array(11) { [0]=> string(11) "BEGIN:VCARD" [1]=> string(40) "PRODID:-//Sabre//Sabre VObject 4.1.2//EN" [2]=> string(40) "UID:eacbcff5-29d6-4ea4-b8ee-70dffd3b650a6" [3]=> string(18) "CATEGORIES:Amis" [4]=> string(25) "N:Monde;Marie;;;" [5]=> string(24) "FN:Marie Monde;" [6]=> string(20) "REV:20180325T202333Z" [7]=> string(26) "TEL;TYPE=CELL:+33666123456" [8]=> string(41) "EMAIL;TYPE=HOME:email@domain.tld" [9]=> string(11) "VERSION:3.0" [10]=> string(9) "END:VCARD" } }
Je cherche en premier la position de la valeur contenant le mot “VERSION”.
if(stripos($value, "VERSION") === 0) {
if($key != 1) {
$index = array_search($value, $array);
} else {
$index = $key;
}
}
J’ai besoin de mettre la valeur contenant “VERSION”, à l’index 1, et que les index suivants bougent en conséquence : le 1 à la place du 2, le 2 à celle du 3, etc… Comment faire ?!
J’ai bien “écrit” ces deux fonctions, mais je n’y arrive pas :
function swap_array($haystack,$key1,$key2) {
$tmp = $haystack[$key1];
$haystack[$key1] = $haystack[$key2];
$haystack[$key2] = $tmp;
return $haystack;
}
function switch_keys($key1, $key2, $haystack) {
if ($key1 > $key2) {
$tmp = $key1;
$key1 = $key2;
$key2 = $tmp;
}
for ($i = $key1; $i < $key2; $i -= 1) {
return swap_array($haystack,$i,$key2);
}
}
Elles permettent de ré-empiler les index correctement.
Votre idée ?!