PHP - 使用 array_unique() 从数组中删除重复项
PHP - Removing duplicates from an array using array_unique()
之前已经讨论过这个话题,但我无法从他们那里得到任何例子来处理我的情况。希望这是一个简单的解决方法,可以帮助其他遇到类似问题的人。
我有一个 html 表格,它采用一系列 5 个数字作为数组。我只是想打印没有任何重复的数字。我正在尝试使用 array_unique()
.
来完成此操作
表格:
<p>Enter a series of numbers. Any duplicates will be removed, then
displayed on the screen.</p>
<form action="rDuplicate.php" method="post">
Number 1: <input type="number" name="number[]"><br>
Number 2: <input type="number" name="number[]"><br>
Number 3: <input type="number" name="number[]"><br>
Number 4: <input type="number" name="number[]"><br>
Number 5: <input type="number" name="number[]"><br>
<input type="submit">
</form>
PHP:
<?php
$values = array($_POST);
$result = array_unique($values);
print_r($result);
?>
当前示例输出:
Array ( [number] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 2 [4] => 1 ) )
<?php
$numbers = $_POST['number'] ?? [];
$numbers = is_array($numbers)
? array_filter($numbers, 'ctype_digit')
: [];
$numbers = array_unique($numbers);
var_dump($numbers);
长格式:
if(isset($_POST['number']))
{
$numbers = $_POST['number'];
} else {
$numbers = [];
}
if(is_array($numbers)) {
$numbers = array_filter($numbers, 'ctype_digit');
} else {
$numbers = [];
}
$numbers = array_unique($numbers);
在长手版中,我们可以使用三元运算符来收缩if else:
$numbers = isset($_POST['number']) ? $_POST['number'] : [];
我们可以使用空合并运算符进一步收缩:
$numbers = $_POST['number'] ?? [];
如果你想确保只有一个整数数组(或更准确地说是字符串中的整数)从你的表单传递,你可以过滤你的数组。
$numbers = array_filter($numbers, 'ctype_digit');
注意:您不能相信用户输入。
之前已经讨论过这个话题,但我无法从他们那里得到任何例子来处理我的情况。希望这是一个简单的解决方法,可以帮助其他遇到类似问题的人。
我有一个 html 表格,它采用一系列 5 个数字作为数组。我只是想打印没有任何重复的数字。我正在尝试使用 array_unique()
.
表格:
<p>Enter a series of numbers. Any duplicates will be removed, then
displayed on the screen.</p>
<form action="rDuplicate.php" method="post">
Number 1: <input type="number" name="number[]"><br>
Number 2: <input type="number" name="number[]"><br>
Number 3: <input type="number" name="number[]"><br>
Number 4: <input type="number" name="number[]"><br>
Number 5: <input type="number" name="number[]"><br>
<input type="submit">
</form>
PHP:
<?php
$values = array($_POST);
$result = array_unique($values);
print_r($result);
?>
当前示例输出:
Array ( [number] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 2 [4] => 1 ) )
<?php
$numbers = $_POST['number'] ?? [];
$numbers = is_array($numbers)
? array_filter($numbers, 'ctype_digit')
: [];
$numbers = array_unique($numbers);
var_dump($numbers);
长格式:
if(isset($_POST['number']))
{
$numbers = $_POST['number'];
} else {
$numbers = [];
}
if(is_array($numbers)) {
$numbers = array_filter($numbers, 'ctype_digit');
} else {
$numbers = [];
}
$numbers = array_unique($numbers);
在长手版中,我们可以使用三元运算符来收缩if else:
$numbers = isset($_POST['number']) ? $_POST['number'] : [];
我们可以使用空合并运算符进一步收缩:
$numbers = $_POST['number'] ?? [];
如果你想确保只有一个整数数组(或更准确地说是字符串中的整数)从你的表单传递,你可以过滤你的数组。
$numbers = array_filter($numbers, 'ctype_digit');
注意:您不能相信用户输入。