Heim  >  Artikel  >  Backend-Entwicklung  >  So generieren Sie ein kartesisches Produkt mithilfe einer benutzerdefinierten PHP-Funktion

So generieren Sie ein kartesisches Produkt mithilfe einer benutzerdefinierten PHP-Funktion

黄舟
黄舟Original
2017-10-09 09:47:471900Durchsuche

Dieser Artikel stellt hauptsächlich die Methode zum Generieren kartesischer Produkte in PHP basierend auf benutzerdefinierten Funktionen vor. Er analysiert die zugehörigen Betriebsfähigkeiten von PHP mithilfe von Array-Operationen, um Sammlungen zu simulieren, um kartesische Produktoperationen anhand spezifischer Beispiele zu implementieren dazu

Das Beispiel in diesem Artikel beschreibt, wie PHP ein kartesisches Produkt basierend auf einer benutzerdefinierten Funktion generiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:


<?php
  $color = array(&#39;red&#39;, &#39;green&#39;);
  $size = array(39, 40, 41);
  $local = array(&#39;beijing&#39;, &#39;shanghai&#39;);
  echo "<pre class="brush:php;toolbar:false">";
  print_r(combineDika($color, $size, $local));
  /**
   * 所有数组的笛卡尔积
   *
   * @param unknown_type $data
   */
  function combineDika() {
    $data = func_get_args();
    $cnt = count($data);
    $result = array();
    foreach($data[0] as $item) {
      $result[] = array($item);
    }
    for($i = 1; $i < $cnt; $i++) {
      $result = combineArray($result,$data[$i]);
    }
    return $result;
  }
  /**
   * 两个数组的笛卡尔积
   *
   * @param unknown_type $arr1
   * @param unknown_type $arr2
   */
  function combineArray($arr1,$arr2) {
    $result = array();
    foreach ($arr1 as $item1) {
      foreach ($arr2 as $item2) {
        $temp = $item1;
        $temp[] = $item2;
        $result[] = $temp;
      }
    }
    return $result;
  }
?>

Laufergebnisse:


Array
(
  [0] => Array
    (
      [0] => red
      [1] => 39
      [2] => beijing
    )
  [1] => Array
    (
      [0] => red
      [1] => 39
      [2] => shanghai
    )
  [2] => Array
    (
      [0] => red
      [1] => 40
      [2] => beijing
    )
  [3] => Array
    (
      [0] => red
      [1] => 40
      [2] => shanghai
    )
  [4] => Array
    (
      [0] => red
      [1] => 41
      [2] => beijing
    )
  [5] => Array
    (
      [0] => red
      [1] => 41
      [2] => shanghai
    )
  [6] => Array
    (
      [0] => green
      [1] => 39
      [2] => beijing
    )
  [7] => Array
    (
      [0] => green
      [1] => 39
      [2] => shanghai
    )
  [8] => Array
    (
      [0] => green
      [1] => 40
      [2] => beijing
    )
  [9] => Array
    (
      [0] => green
      [1] => 40
      [2] => shanghai
    )
  [10] => Array
    (
      [0] => green
      [1] => 41
      [2] => beijing
    )
  [11] => Array
    (
      [0] => green
      [1] => 41
      [2] => shanghai
    )
)

Das obige ist der detaillierte Inhalt vonSo generieren Sie ein kartesisches Produkt mithilfe einer benutzerdefinierten PHP-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn