-6
votes

Comment enlèverez-la de manière interligne un tableau en PHP?

Par exemple, j'ai un tableau:

$x = array("a", "a", "b", "b", "c", "c", "d", "d", "e", "e");


8 commentaires

Similaire: Stackoverflow.com/q/8234899/2943403


Quelle est votre utilisation réelle pour cette technique? Stocker des données redondantes ne sent pas les meilleures pratiques. Qu'est-ce que vous en fait faire?


Ce n'est pas ce mec similaire! Il est difficile d'expliquer mais mon projet nécessite certaines conditions que je dois doubler les valeurs afin que je puisse les lire deux fois lorsque je pourache. Désolé s'il y a un autre moyen plus efficace de le faire, mais je pense juste à cela.


C'est exactement la même chose que pour l'ordre des éléments. Le réglage de vos données n'est pas la solution à votre problème de codage.


Pour que je puisse les lire deux fois lorsque je pourache . Pourquoi ne pas simplement faire la même chose deux fois dans la boucle? foreach ($ A comme $ b) {echo $ b; echo $ b;}


Non non. C'est comme si j'ai deux champs et je dois faire écho à une valeur unique pour les deux domaines à chaque fois que je pourach.


Il n'est jamais trop tard pour clarifier votre problème de codage. J'ai voté pour fermer comme incertain. Il n'est pas clair par votre question postée et vos échantillons de données exactement ce dont vous avez besoin d'aide.


@MickMackusa Je pense que vous êtes sur la bonne voie ici. Une inspection plus étroite de cette question sent fortement un XY Problème


3 Réponses :


4
votes

ressemble à une réduction raisonnablement simple (en utilisant array_reduce () ) xxx

démo ~ https://3v4l.org/enh8a


vient de réaliser que "réduction" semble un peu drôle puisque nous faisons le tableau plus gros. Pensez-y plus comme une transformation . Voir https://fr.wikipedia.org/wiki/reduce_(Parallel_Pattern)


2 commentaires

Je recommande de modifier le corps de la fonction de réduction à: retour Array_merge ($ Arr, array_pad ([], $ fois, $ VAL)); - de cette façon le $ fois Peut être changé facilement - ajouter utiliser ($ fois) à la déclaration de fonction Réduire la fonction


@dwinder je vois ce que tu veux dire. Je sens que je pouvais faire quelque chose de plus concis à l'aide de l'opérateur PHP Splat . J'en aurayerai



0
votes

Je ne sais pas s'il y a une fonction de bibliothèque pour cela, mais cherchez-vous quelque chose dans le sens de ceci: XXX PRE>

Cela devrait en théorie faire ce que vous voulez. p>

array(5) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
}
array(10) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "a"
  [2]=>
  string(1) "b"
  [3]=>
  string(1) "b"
  [4]=>
  string(1) "c"
  [5]=>
  string(1) "c"
  [6]=>
  string(1) "d"
  [7]=>
  string(1) "d"
  [8]=>
  string(1) "e"
  [9]=>
  string(1) "e"
}


0 commentaires

1
votes

itération sur le tableau et stocke les valeurs d'une nouvelle array est une solution simple.

$x =  array("a", "b", "c", "d", "e");
$result_array = [];
$repeat_x_times = 2;

foreach ($x as $element) {
    for ($i = 0; $i < $repeat_x_times ; $i++) {
        $result_array[] = $element;
    }
}


0 commentaires