Disons que j'ai ce tableau:PHP ajouter un élément d'un tableau
$array = (1,2,4,5);
Maintenant, comment puis-je ajouter manquante 3 dans le tableau ci-dessus dans la position correcte index/clé -wise?
Disons que j'ai ce tableau:PHP ajouter un élément d'un tableau
$array = (1,2,4,5);
Maintenant, comment puis-je ajouter manquante 3 dans le tableau ci-dessus dans la position correcte index/clé -wise?
Essayez:
array_splice($array, 2 /*offset*/, 0 /*length*/, 3 /*value*/);
Notez que ce réordonner les clés de tableau d'entrée de 0 à n-1.
(Edit: La valeur de retour n'est pas utilisé dans ce cas.)
array_merge(array_slice($array,0,2),array(3),array_slice($array,2))
function array_insert($array,$pos,$val)
{
$array2 = array_splice($array,$pos);
$array[] = $val;
$array = array_merge($array,$array2);
return $array;
}
utilisation:
array_insert($a,2,3);
Vous avez effectivement reconstruit 'array_splice()' – Harmen
C'est la raison pour laquelle il y a tellement de fonctions de tableau en PHP: écrire le vôtre est normalement plus rapide que de lire les subtilités de dans ceux dans le manuel :) –
wow, nous apprenons quelque chose de nouveau tous les jours. merci pour le pointeur @Harmen :) +1 – tpae
Peut-être que je manque la complexité de votre question, mais ce qui suit ne vous donne-t-il pas ce que vous voulez?
$array[] = 3;
sort($array);
Last but not least:
function insertMissingIntoArray($values = array(), $valueIncrement = 1) {
$lastValue = 0;
foreach ($values as $key=>$val) {
if ($key != 0) {
if ($val != $lastValue + $valueIncrement) {
array_splice($values, $key, 0, $val);
}
$lastValue = $val;
}
}
return $values;
}
occasion comme ceci:
$values = array(1,2,4,5,7,9);
$fixedValues = insertMissingIntoArray($values, 1);
// $fixedValues now is (1,2,3,4,5,6,7,8,9)
Ceci retourne un tableau vide – Harmen
Oui, j'avais déjà corrigé ma réponse. Il retourne les éléments qui ont été extraits, ce qui n'est rien dans ce cas. Il modifie le tableau d'entrée d'origine par référence. – Matthew
konforence, -1 devient +1;) – Harmen