Virtlab:Řídící server/SupportFunctions.php.inc

Z VirtlabWiki

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
Verze z 21:54, 21. 2. 2007
Vav166 (Diskuse | příspěvky)

← Předchozí porovnání
Verze z 15:37, 22. 2. 2007
Vav166 (Diskuse | příspěvky)

Následující porovnání →
Řádka 2: Řádka 2:
== Popis funkcí == == Popis funkcí ==
-<pre>+; function ClearWhitespaceInXML($data) : ze vstupních dat (XML dat), odstraní bílé znaky mezi značkami.
-3:function ClearWhitespaceInXML($data) {+; function Unique($array) : z pole udělá množinu (odstraní duplicitní hodnoty)
-10:function Unique($array) {+; function array_delete(&$array, $value) : z pole <tt>$array</tt> odstraní hodnotu <tt>$value</tt>.
-17:function array_delete(&$array, $value) {+; function array_porovnej($array1, $array2) : vypočíta rozdíl multimnožin <tt>$array1 - $array2</tt>
-29:function array_porovnej($array1, $array2) {+; function DoubleArrayItems($array) : zdvojí prvky pole
-47:function DoubleArrayItems($array) {+; function MatrixClear(&$matice, $radek, $sloupec) : v zadané matici zruší určený sloupec a řádek
-60:function MatrixClear(&$matice, $radek, $sloupec) {+
-</pre>+
== Příklady == == Příklady ==
 + '''$xml''' = "<tag1>Hello World</tag1>
 + <tag1>Hello World</tag1> <tag1>Hello World</tag1>
 + <tag1>Hello World</tag1>";
 +
 + $cisto = '''ClearWhitespaceInXML($xml)''';
 +
 + '''$cisto''' == "&lt;tag1&gt;Hello World&lt;/tag1&gt;&lt;tag1&gt;Hello World&lt;/tag1&gt;&lt;tag1&gt;Hello World&lt;/tag1&gt;&lt;tag1&gt;Hello World&lt;/tag1&gt;";
 +
 + $a1 = array(1, 1, 1, 2, 3, 4, 5, 5, 6, 6, 6, 6);
 + $a2 = array(1, 1, 1, 1, 2, 4, 5, 6, 6, 6);
 + $a12 = '''array_porovnej($a1, $a2)''';
 + $a21 = '''array_porovnej($a2, $a1)''';
 +
 + '''$a1'''
 + (
 + [0] => 1
 + [1] => 1
 + [2] => 1
 + [3] => 2
 + [4] => 3
 + [5] => 4
 + [6] => 5
 + [7] => 5
 + [8] => 6
 + [9] => 6
 + [10] => 6
 + [11] => 6
 + )
 +
 + '''$a2'''
 + (
 + [0] => 1
 + [1] => 1
 + [2] => 1
 + [3] => 1
 + [4] => 2
 + [5] => 4
 + [6] => 5
 + [7] => 6
 + [8] => 6
 + [9] => 6
 + )
 +
 + '''$a12'''
 + (
 + [4] => 3
 + [7] => 5
 + [11] => 6
 + )
 +
 + '''$a21'''
 + (
 + [3] => 1
 + )
 +
 + $a = array(1, "index1" => 2, 3, "index2" => 4, "index3" => 5,
 + 6 => array(3, "index4" => 4, "index5" => 5));
 + $a2 = '''DoubleArrayItems($a)''';
 +
 + '''$a'''
 + (
 + [0] => 1
 + [index1] => 2
 + [1] => 3
 + [index2] => 4
 + [index3] => 5
 + [6] => Array
 + (
 + [0] => 3
 + [index4] => 4
 + [index5] => 5
 + )
 + )
 +
 + '''$a2'''
 + (
 + [0] => 1
 + [1] => 1
 + [2] => 2
 + [3] => 2
 + [4] => 3
 + [5] => 3
 + [6] => 4
 + [7] => 4
 + [8] => 5
 + [9] => 5
 + [10] => Array
 + (
 + [0] => 3
 + [index4] => 4
 + [index5] => 5
 + )
 + [11] => Array
 + (
 + [0] => 3
 + [index4] => 4
 + [index5] => 5
 + )
 + )
 +
 + '''$a'''
 + (
 + [radek1] => Array
 + (
 + [sloupec1] => 0
 + [sloupec2] => 1
 + [sloupec3] => 2
 + [sloupec4] => 3
 + )
 + [radek2] => Array
 + (
 + [sloupec1] => 0
 + [sloupec3] => 2
 + [sloupec4] => 3
 + )
 + [radek3] => Array
 + (
 + [sloupec3] => 2
 + [sloupec4] => 3
 + )
 + )
 +
 + '''MatrixClear(&$a, "radek2", "sloupec1")''';
 +
 + '''$a'''
 + (
 + [radek1] => Array
 + (
 + [sloupec2] => 1
 + [sloupec3] => 2
 + [sloupec4] => 3
 + )
 + [radek3] => Array
 + (
 + [sloupec3] => 2
 + [sloupec4] => 3
 + )
 + )
== Zdrojový kód == == Zdrojový kód ==
Řádka 22: Řádka 158:
return preg_replace($pattern, $replacement, $data); return preg_replace($pattern, $replacement, $data);
}//function }//function
- 
function Unique($array) { function Unique($array) {
Řádka 29: Řádka 164:
return NULL; return NULL;
}//function }//function
- 
function array_delete(&$array, $value) { function array_delete(&$array, $value) {
Řádka 41: Řádka 175:
return NULL; return NULL;
} }
- 
function array_porovnej($array1, $array2) { function array_porovnej($array1, $array2) {
Řádka 59: Řádka 192:
return $result; return $result;
}//function }//function
- 
function DoubleArrayItems($array) { function DoubleArrayItems($array) {
Řádka 72: Řádka 204:
return NULL; return NULL;
}//function }//function
- 
function MatrixClear(&$matice, $radek, $sloupec) { function MatrixClear(&$matice, $radek, $sloupec) {
Řádka 78: Řádka 209:
foreach($matice as $radecek => $radky) foreach($matice as $radecek => $radky)
foreach($radky as $sloupecek => $hodonota) { foreach($radky as $sloupecek => $hodonota) {
- if($sloupecek == $sloupec) unset($matice[$radecek][$sloupecek]);+ if($sloupecek == $sloupec)
 + unset($matice[$radecek][$sloupecek]);
} }
}//function }//function

Verze z 15:37, 22. 2. 2007

Pomocné funkce.

Popis funkcí

function ClearWhitespaceInXML($data) 
ze vstupních dat (XML dat), odstraní bílé znaky mezi značkami.
function Unique($array) 
z pole udělá množinu (odstraní duplicitní hodnoty)
function array_delete(&$array, $value) 
z pole $array odstraní hodnotu $value.
function array_porovnej($array1, $array2) 
vypočíta rozdíl multimnožin $array1 - $array2
function DoubleArrayItems($array) 
zdvojí prvky pole
function MatrixClear(&$matice, $radek, $sloupec) 
v zadané matici zruší určený sloupec a řádek

Příklady

$xml = "<tag1>Hello World</tag1>
 <tag1>Hello World</tag1>       <tag1>Hello World</tag1>
 <tag1>Hello World</tag1>";

$cisto = ClearWhitespaceInXML($xml);

$cisto == "<tag1>Hello World</tag1><tag1>Hello World</tag1><tag1>Hello World</tag1><tag1>Hello World</tag1>";
$a1  = array(1, 1, 1, 2, 3, 4, 5, 5, 6, 6, 6, 6);
$a2  = array(1, 1, 1, 1, 2, 4, 5, 6, 6, 6);
$a12 = array_porovnej($a1, $a2);
$a21 = array_porovnej($a2, $a1);

$a1
(
   [0] => 1
   [1] => 1
   [2] => 1
   [3] => 2
   [4] => 3
   [5] => 4
   [6] => 5
   [7] => 5
   [8] => 6
   [9] => 6
   [10] => 6
   [11] => 6
)

$a2
(
   [0] => 1
   [1] => 1
   [2] => 1
   [3] => 1
   [4] => 2
   [5] => 4
   [6] => 5
   [7] => 6
   [8] => 6
   [9] => 6
)

$a12
(
   [4] => 3
   [7] => 5
   [11] => 6
)

$a21
(
   [3] => 1
)
$a = array(1, "index1" => 2, 3, "index2" => 4, "index3" => 5, 
           6 => array(3, "index4" => 4, "index5" => 5));
$a2 = DoubleArrayItems($a);

$a
(
   [0] => 1
   [index1] => 2
   [1] => 3
   [index2] => 4
   [index3] => 5
   [6] => Array
       (
           [0] => 3
           [index4] => 4
           [index5] => 5
       )
)

$a2
(
   [0] => 1
   [1] => 1
   [2] => 2
   [3] => 2
   [4] => 3
   [5] => 3
   [6] => 4
   [7] => 4
   [8] => 5
   [9] => 5
   [10] => Array
       (
           [0] => 3
           [index4] => 4
           [index5] => 5
       )
   [11] => Array
       (
           [0] => 3
           [index4] => 4
           [index5] => 5
       )
)
$a
(
   [radek1] => Array
       (
           [sloupec1] => 0
           [sloupec2] => 1
           [sloupec3] => 2
           [sloupec4] => 3
       )
   [radek2] => Array
       (
           [sloupec1] => 0
           [sloupec3] => 2
           [sloupec4] => 3
       )
   [radek3] => Array
       (
           [sloupec3] => 2
           [sloupec4] => 3
       )
)

MatrixClear(&$a, "radek2", "sloupec1");

$a
(
   [radek1] => Array
       (
           [sloupec2] => 1
           [sloupec3] => 2
           [sloupec4] => 3
       )
   [radek3] => Array
       (
           [sloupec3] => 2
           [sloupec4] => 3
       )
)

Zdrojový kód

<?php

function ClearWhitespaceInXML($data) {
    $pattern = "/>\s+</";
    $replacement = "><";
    return preg_replace($pattern, $replacement, $data);
}//function

function Unique($array) {
    if(is_array($array))
        return array_keys(array_flip($array));
    return NULL;
}//function

function array_delete(&$array, $value) {
    if(is_array($array)) {
        if(in_array($value, $array)) {
            $array = array_diff($array, array($value));
            return 1;
        }
        return 0;
    }//if
    return NULL;
}

function array_porovnej($array1, $array2) {
    $result = array();
    foreach($array1 as $idx1 => $value1) {
        $exists = 0;
        foreach($array2 as $idx2 => $value2) {
            if($value1 == $value2) {
                unset($array2[$idx2]);
                $exists = 1;
                break;
            }
            //else $result[$idx1] = $value1;
        }//foreach
        if(!$exists) $result[$idx1] = $value1;
    }//foreach
    return $result;
}//function

function DoubleArrayItems($array) {
    $temp = array();
    if(is_array($array)) {
        foreach($array as $hodnota) {
            array_push($temp, $hodnota);
            array_push($temp, $hodnota);
        }//foreach
        return $temp;
    }//if
    return NULL;
}//function

function MatrixClear(&$matice, $radek, $sloupec) {
    unset($matice[$radek]);
    foreach($matice as $radecek => $radky)
        foreach($radky as $sloupecek => $hodonota) {
            if($sloupecek == $sloupec) 
                unset($matice[$radecek][$sloupecek]);
    }
}//function
?>

Osobní nástroje