Troncature PHP tableaux

  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Novembre 10th, 2010, 11:25 am

Salut à tous

J'ai le tableau suivant:

Code: [ Select ]

$browser = array(
  'Firefox 3.0.1',
  'Firefox 3.5.13',
  'Firefox 3.6.12',
  'Internet Explorer 6.0',
  'Internet Explorer 7.0',
  'Internet Explorer 8.0',
  'Safari 525.13',
);
  1. $browser = array(
  2.   'Firefox 3.0.1',
  3.   'Firefox 3.5.13',
  4.   'Firefox 3.6.12',
  5.   'Internet Explorer 6.0',
  6.   'Internet Explorer 7.0',
  7.   'Internet Explorer 8.0',
  8.   'Safari 525.13',
  9. );


Je tiens à tronquer le tableau de sorte que des valeurs numériques tha sont supprimés pour obtenir:

Code: [ Select ]

$newarray = array(
  'Firefox',
  'Firefox',
  'Firefox',
  'Internet Explorer',
  'Internet Explorer',
  'Internet Explorer',
  'Safari',
);
  1. $newarray = array(
  2.   'Firefox',
  3.   'Firefox',
  4.   'Firefox',
  5.   'Internet Explorer',
  6.   'Internet Explorer',
  7.   'Internet Explorer',
  8.   'Safari',
  9. );


Maintenant, pour obtenir les totaux pour chaque navigateur Je voudrais utiliser:

Code: [ Select ]

$browserout = array_count_values ($newarray);

  1. $browserout = array_count_values ($newarray);


Quelqu'un peut-il me donner quelques idées que je n'ai pas être en mesure de le faire

Merci
http://www.schembrionics.com
The Ultimate Solutions Center
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Novembre 10th, 2010, 11:25 am

  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Novembre 10th, 2010, 11:38 am

Rechercher dans ce:
Code: [ Select ]
$newitem = ereg_replace("[^a-zA-Z]", "", $item);


Le code ci-dessus va supprimer tout ce qui n'est pas compensée par le modèle et de le retourner.
#define NULL (::rand() % 2)
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Novembre 10th, 2010, 2:12 pm

Salut frauduleux

Appare notly nous sommes censés nous preg_replace maintenant

J'ai pris votre idée et mis en place le script suivant & #058;

Code: [ Select ]

$new=array();
foreach($browsers as $K=>$A)
{
$Key = preg_replace("[^a-zA-Z]", "", $K);
$ZKey = $browsers[$K];
$new[$ZKey] = $browsers[$Key];
}

echo "<pre>";
print_r ($new);
echo "</pre>";
  1. $new=array();
  2. foreach($browsers as $K=>$A)
  3. {
  4. $Key = preg_replace("[^a-zA-Z]", "", $K);
  5. $ZKey = $browsers[$K];
  6. $new[$ZKey] = $browsers[$Key];
  7. }
  8. echo "<pre>";
  9. print_r ($new);
  10. echo "</pre>";


La sortie que j'ai obtenu est représenté ci-dessous;

Code: [ Select ]

Array
(
  [Firefox 3.0.1] => Firefox 3.0.1
  [Firefox 3.5.13] => Firefox 3.5.13
  [Firefox 3.6.12] => Firefox 3.6.12
  [Internet Explorer 6.0] => Internet Explorer 6.0
  [Internet Explorer 7.0] => Internet Explorer 7.0
  [Internet Explorer 8.0] => Internet Explorer 8.0
  [Safari 525.13] => Safari 525.13
)
  1. Array
  2. (
  3.   [Firefox 3.0.1] => Firefox 3.0.1
  4.   [Firefox 3.5.13] => Firefox 3.5.13
  5.   [Firefox 3.6.12] => Firefox 3.6.12
  6.   [Internet Explorer 6.0] => Internet Explorer 6.0
  7.   [Internet Explorer 7.0] => Internet Explorer 7.0
  8.   [Internet Explorer 8.0] => Internet Explorer 8.0
  9.   [Safari 525.13] => Safari 525.13
  10. )


Pouvez-vous me dire ce que je n'ai pas ici

Merci
http://www.schembrionics.com
The Ultimate Solutions Center
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Novembre 10th, 2010, 2:17 pm

preg_replace renvoie la chaîne manipulé. Aussi $ K est une clé, vous wan à utiliser $ A dans la fonction.
#define NULL (::rand() % 2)
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Novembre 10th, 2010, 3:03 pm

Salut frauduleux

J'ai fait comme suit:

Code: [ Select ]

$new=array();
foreach($browsers as $K=>$A)
{
$Key = preg_replace("[^a-zA-Z]", "", $A);
$ZKey = $browsers[$A];
$new[$ZKey] = $browsers[$Key];
}

echo "<pre>";
print_r ($new);
echo "</pre>";
  1. $new=array();
  2. foreach($browsers as $K=>$A)
  3. {
  4. $Key = preg_replace("[^a-zA-Z]", "", $A);
  5. $ZKey = $browsers[$A];
  6. $new[$ZKey] = $browsers[$Key];
  7. }
  8. echo "<pre>";
  9. print_r ($new);
  10. echo "</pre>";


Cependant, ma production est maintenant vide:

Code: [ Select ]

Array
(
  [] =>
)
  1. Array
  2. (
  3.   [] =>
  4. )


Suis-je manque encore quelque chose

Merci
http://www.schembrionics.com
The Ultimate Solutions Center
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Novembre 10th, 2010, 3:12 pm

Utiliser la clause suivante dans votre foreach:

Code: [ Select ]
$new[] = preg_replace("[^a-zA-Z]", "", $A);
#define NULL (::rand() % 2)
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Novembre 10th, 2010, 3:39 pm

Vous ne savez pas ce que vous entendez

dois-je remplacer tout dans la boucle foreach avec votre suggestion

Code: [ Select ]

$new=array();
foreach($browsers as $K=>$A)
{
$new[] = preg_replace("[^a-zA-Z]", "", $A);
}
  1. $new=array();
  2. foreach($browsers as $K=>$A)
  3. {
  4. $new[] = preg_replace("[^a-zA-Z]", "", $A);
  5. }
http://www.schembrionics.com
The Ultimate Solutions Center
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Novembre 10th, 2010, 3:43 pm

Oui
#define NULL (::rand() % 2)
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Novembre 10th, 2010, 3:50 pm

Je l'ai fait et maintenant obtenir le texte suivant:

Code: [ Select ]

Array
(
  [0] => Firefox 3.0.1
  [1] => Firefox 3.0.1
  [2] => Firefox 3.5.13
  [3] => Firefox 3.5.13
  [4] => Firefox 3.6.12
  [5] => Firefox 3.6.12
  [6] => Firefox 3.6.12
  [7] => Internet Explorer 6.0
  [8] => Internet Explorer 6.0
  [9] => Internet Explorer 7.0
  [10] => Internet Explorer 7.0
  [11] => Internet Explorer 8.0
  [12] => Safari 525.13
)
  1. Array
  2. (
  3.   [0] => Firefox 3.0.1
  4.   [1] => Firefox 3.0.1
  5.   [2] => Firefox 3.5.13
  6.   [3] => Firefox 3.5.13
  7.   [4] => Firefox 3.6.12
  8.   [5] => Firefox 3.6.12
  9.   [6] => Firefox 3.6.12
  10.   [7] => Internet Explorer 6.0
  11.   [8] => Internet Explorer 6.0
  12.   [9] => Internet Explorer 7.0
  13.   [10] => Internet Explorer 7.0
  14.   [11] => Internet Explorer 8.0
  15.   [12] => Safari 525.13
  16. )


Il n'a pas supprimé les numéros
http://www.schembrionics.com
The Ultimate Solutions Center
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Novembre 10th, 2010, 4:06 pm

Ah, je vois ce qui s'est passé, a besoin d'un preg_replace syntaxe légèrement différente.

Code: [ Select ]
$new[] = preg_replace("/[^a-zA-Z\ ]/s", "", $A);
#define NULL (::rand() % 2)
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Novembre 10th, 2010, 4:11 pm

Vous pouvez mettre un trim () autour de la fonction preg_replace pour supprimer les espaces de fin blanc.
#define NULL (::rand() % 2)
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Novembre 10th, 2010, 4:15 pm

J'ai fait ce qui suit

Code: [ Select ]

$new=array();
foreach($basicclean as $K=>$A)
{
$new[] = trim(preg_replace("[^a-zA-Z]", "", $A));
}
  1. $new=array();
  2. foreach($basicclean as $K=>$A)
  3. {
  4. $new[] = trim(preg_replace("[^a-zA-Z]", "", $A));
  5. }


Il n'a eu aucun effet, les chiffres sont toujours là
http://www.schembrionics.com
The Ultimate Solutions Center
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Novembre 10th, 2010, 4:19 pm

SpooF a écrit:
Vous pouvez mettre un trim () autour de la fonction preg_replace pour supprimer les espaces de fin blanc.


Hell, pourquoi ne pas ajouter les numéros et tout trucs étaient à elle? :D

Code: [ Select ]
$new = array();

foreach($old as $key => $val)
{
  $val = strtolower(trim($val, ' .1234567890/'));
  if(empty($new[$val])) $new[$val] = 0;
  $new[$val]++;
}
  1. $new = array();
  2. foreach($old as $key => $val)
  3. {
  4.   $val = strtolower(trim($val, ' .1234567890/'));
  5.   if(empty($new[$val])) $new[$val] = 0;
  6.   $new[$val]++;
  7. }


Ill avoue, je pensais trop preg_replace jusqu'à ce que vous avez mentionné trim (). Son facile à utiliser des expressions régulières comme un go-to. gif "alt =": D "title =" très heureux ">
Strong with this one, the sudo is.
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Novembre 10th, 2010, 4:44 pm

Essayé votre suggestion capitaine afro et cela a fonctionné très bien.

Ce que j'ai également aimé, c'est qu'il donne aussi le nombre pour chaque navigateur qui permet de gagner une étape vraiment me.

Je tiens à vous remercier et frauduleux de votre aide

Vous êtes des grands
http://www.schembrionics.com
The Ultimate Solutions Center

Afficher de l'information

  • Total des messages de ce sujet: 14 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 118 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC