Fonctions Internes

Exemple

Dans le dossier fonctions, ajoutez le fichier internes.php

Réalisez les fonctions du fichier.

1
<?php
2
3
$tabNombres = (string)($_POST['tabNombres'] ?? '');
4
$listeNombres = array_map(
5
    function ($value) {
6
        return (int)$value;
7
    },
8
    explode(',', $tabNombres)
9
);
10
$tabMots = (string)($_POST['tabMots'] ?? '');
11
$listeMots = explode(',', $tabMots);
12
$tabAssoc1 = (string)($_POST['tabAssoc1'] ?? '');
13
$keys = array_map(
14
    function ($value) {
15
        return explode(':', $value)[0];
16
    },
17
    explode(',', $tabAssoc1)
18
);
19
$values = array_map(
20
    function ($value) {
21
        return explode(':', $value)[1] ?? '';
22
    },
23
    explode(',', $tabAssoc1)
24
);
25
$listeAssoc1 = array_combine($keys, $values);
26
$tabAssoc2 = (string)($_POST['tabAssoc2'] ?? '');
27
$keys = array_map(
28
    function ($value) {
29
        return explode(':', $value)[0];
30
    },
31
    explode(',', $tabAssoc2)
32
);
33
$values = array_map(
34
    function ($value) {
35
        return explode(':', $value)[1] ?? '';
36
    },
37
    explode(',', $tabAssoc2)
38
);
39
$listeAssoc2 = array_combine($keys, $values);
40
41
$nombre1 = (int)($_POST['nombre1'] ?? 0);
42
$nombre2 = (int)($_POST['nombre2'] ?? 0);
43
$nombre3 = (int)($_POST['nombre3'] ?? 0);
44
45
// Exercices
46
47
$exo1Afficher = '';
48
$exo2Afficher = '';
49
$exo3Afficher = '';
50
$exo4Afficher = '';
51
$exo5Afficher = '';
52
$exo6Afficher = '';
53
$exo7Afficher = '';
54
$exo8Afficher = '';
55
$exo9Afficher = '';
56
$exo10Afficher = '';
57
58
?>
59
<!DOCTYPE html>
60
<html lang="fr">
61
62
<head>
63
    <title>PHP Fonctions Internes</title>
64
    <meta charset="UTF-8" />
65
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/css/bootstrap.min.css" integrity="sha384-r4NyP46KrjDleawBgD5tp8Y7UzmLA05oM1iAEQ17CSuDqnUK2+k9luXQOfXJCJ4I" crossorigin="anonymous">
66
</head>
67
68
<body>
69
    <form action="" method="post">
70
        <div class="m-3 p-3 row bg-secondary">
71
            <p>Entrer les variables</p>
72
            <div class="col-3 input-group mb-3">
73
                <span class="input-group-text">Tableau de nombres (5,3,7...)</span>
74
                <input type="text" name="tabNombres" value="<?= $tabNombres; ?>" class="form-control" />
75
            </div>
76
            <div class="col-3 input-group mb-3">
77
                <span class="input-group-text">Tableau de mots (aa,bb...)</span>
78
                <input type="text" name="tabMots" value="<?= $tabMots; ?>" class="form-control" />
79
            </div>
80
            <div class="col-3 input-group mb-3">
81
                <span class="input-group-text">Tableau associatif 1 (a:abc,b:def...)</span>
82
                <input type="text" name="tabAssoc1" value="<?= $tabAssoc1; ?>" class="form-control" />
83
            </div>
84
            <div class="col-3 input-group mb-3">
85
                <span class="input-group-text">Tableau associatif 2 (a:abc,b:def...)</span>
86
                <input type="text" name="tabAssoc2" value="<?= $tabAssoc2; ?>" class="form-control" />
87
            </div>
88
            <div class="col input-group mb-3">
89
                <span class="input-group-text">Nombre1</span>
90
                <input type="text" name="nombre1" value="<?= $nombre1; ?>" class="form-control" />
91
            </div>
92
            <div class="col input-group mb-3">
93
                <span class="input-group-text">Nombre2</span>
94
                <input type="text" name="nombre2" value="<?= $nombre2; ?>" class="form-control" />
95
            </div>
96
            <div class="col input-group mb-3">
97
                <span class="input-group-text">Nombre3</span>
98
                <input type="text" name="nombre3" value="<?= $nombre3; ?>" class="form-control" />
99
            </div>
100
            <div class="col-auto">
101
                <button type="submit" class="btn btn-primary">Soumettre</button>
102
            </div>
103
        </div>
104
105
        <div class="m-3 p-3 row bg-secondary">
106
            <p>Affiche la somme des nombres</p>
107
108
            <div class="col">
109
                <input type="text" value="<?= $exo1Afficher; ?>" class="form-control" readonly />
110
            </div>
111
        </div>
112
113
        <div class="m-3 p-3 row bg-secondary">
114
            <p>Affiche le tableau de nombre</p>
115
116
            <div class="col">
117
                <input type="text" value="<?= $exo2Afficher; ?>" class="form-control" readonly />
118
            </div>
119
        </div>
120
121
        <div class="m-3 p-3 row bg-secondary">
122
            <p>Affiche la somme des longueurs des mots de tableau de mots</p>
123
124
            <div class="col">
125
                <input type="text" value="<?= $exo3Afficher; ?>" class="form-control" readonly />
126
            </div>
127
        </div>
128
129
        <div class="m-3 p-3 row bg-secondary">
130
            <p>Génère un tableau à partir du tableau de nombres :<br />
131
                Les nombres pairs remplacés par 0, les impairs par 1</p>
132
            <div class="col bg-light m-3 rounded">
133
                <?php var_dump($exo4Afficher); ?>
134
            </div>
135
        </div>
136
137
        <div class="m-3 p-3 row bg-secondary">
138
            <p>Génère un tableau à partir du tableau de mots :<br />
139
                Le contenu correspond aux longueurs des valeurs du tableau</p>
140
            <div class="col bg-light m-3 rounded">
141
                <?php var_dump($exo5Afficher); ?>
142
            </div>
143
        </div>
144
145
        <div class="m-3 p-3 row bg-secondary">
146
            <p>Génère un tableau à partir du tableau de nombres :<br />
147
                garde seulement les valeurs impaires</p>
148
            <div class="col bg-light m-3 rounded">
149
                <?php var_dump($exo6Afficher); ?>
150
            </div>
151
        </div>
152
153
        <div class="m-3 p-3 row bg-secondary">
154
            <p>Fusionne les tableaux associatifs 1 et 2</p>
155
            <div class="col bg-light m-3 rounded">
156
                <?php var_dump($exo7Afficher); ?>
157
            </div>
158
        </div>
159
160
        <div class="m-3 p-3 row bg-secondary">
161
            <p>Génère un tableau à partir du tableau de nombres :<br />
162
                Extrait une portion à partir du rang nombre1 et pour une longueur de nombre2 éléments</p>
163
            <div class="col bg-light m-3 rounded">
164
                <?php var_dump($exo8Afficher); ?>
165
            </div>
166
        </div>
167
168
        <div class="m-3 p-3 row bg-secondary">
169
            <p>Trie le tableau de mots par ordre croissant des longueurs des mots</p>
170
            <div class="col bg-light m-3 rounded">
171
                <?php var_dump($exo9Afficher); ?>
172
            </div>
173
        </div>
174
175
        <div class="m-3 p-3 row bg-secondary">
176
            <p>Affiche si nombre1 se trouve dans le tableau de nombres</p>
177
            <div class="col bg-light m-3 rounded">
178
                <?php var_dump($exo10Afficher); ?>
179
            </div>
180
        </div>
181
    </form>
182
</body>
183
184
</html>