Maison >base de données >tutoriel mysql >Analyse sur la méthode de conversion d'un tableau verticalement en horizontal et filtrage des valeurs en double en PHP

Analyse sur la méthode de conversion d'un tableau verticalement en horizontal et filtrage des valeurs en double en PHP

怪我咯
怪我咯original
2017-06-16 11:22:451257parcourir

Cet article présente principalement la méthode PHP pour convertir le tableau verticalement en horizontal et filtrer les valeurs en double. Il compare et analyse également les techniques de fonctionnement de PHP pour la traversée, la conversion et la déduplication de tableaux sous la forme d'exemples spécifiques. référez-vous à lui

L'exemple de cet article décrit la méthode de conversion d'un tableau verticalement en horizontal et de filtrage des valeurs en double en PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1 Question

Il y a un tableau :

<.>

array(
  6=>array(5=>&#39;黑xx&#39;, 42=>&#39;XXL&#39;),
  7=>array(5=>&#39;黑xx&#39;, 40=>&#39;XL&#39;),
  8=>array(8=>&#39;灰&#39;,  40=>&#39;XL&#39;),
);

doit être converti en le résultat suivant (le tableau est tourné verticalement et horizontalement et les valeurs en double sont filtrées) :

array(
  0=>array(5=>&#39;黑xx&#39;, 8=>&#39;灰&#39;),
  1=>array(42=>&#39;XXL&#39;, 40=>&#39;XL&#39;),
);

2. Solution :

Méthode 1 :

$a = array(
  6=>array(5=>&#39;黑xx&#39;, 42=>&#39;XXL&#39;),
  7=>array(5=>&#39;黑xx&#39;, 40=>&#39;XL&#39;),
  8=>array(8=>&#39;灰&#39;,  40=>&#39;XL&#39;),
);
foreach($a as $r) {
 $b[key($r)] = current($r);
 next($r);
 $c[key($r)] = current($r);
}
$b = array($b, $c);
print_r($b);

Méthode 2 :

$arr = array(
  6=>array(5=>&#39;黑xx&#39;, 42=>&#39;XXL&#39;),
  7=>array(5=>&#39;黑xx&#39;, 40=>&#39;XL&#39;),
  8=>array(8=>&#39;灰&#39;,  40=>&#39;XL&#39;),
);
$result = array();
foreach($arr as $a){
  $keys = array_keys($a);
  $vals = array_values($a);
  $result[0][$keys[0]] = $vals[0];
  $result[1][$keys[1]] = $vals[1];
}
print_r($result);

Le façon la plus simple d'écrire :

$a = array(
  6=>array(5=>&#39;黑xx&#39;, 42=>&#39;XXL&#39;),
  7=>array(5=>&#39;黑xx&#39;, 40=>&#39;XL&#39;),
  8=>array(8=>&#39;灰&#39;,  40=>&#39;XL&#39;),
);
foreach($a as $r) {
 $i = 0;
 while(list($k, $v) = each($r)) $b[$i++][$k] = $v;
}
print_r($b);

Les résultats finaux en cours d'exécution sont :

Array
(
  [0] => Array
    (
      [5] => 黑xx
      [8] => 灰
    )
  [1] => Array
    (
      [42] => XXL
      [40] => XL
    )
)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn