php - PHP remove duplicates in foreach after substr results
问题描述
How can I remove the duplicates after my substr output in the foreach loop? Currently it outputs the stripped string in multiples. I would like the output to only list a unique "$workername" to avoid duplicates being listed
foreach ($block as $blocks) {
$worker = $block['pools']['snowgem']['workers'];
foreach($worker as $workers) {
//$workers = array_unique($workers);
$workername = substr($workers['name'], 0, strpos($workers['name'], "."));
echo $workername."<br>";
}
}
Sample output:
s1a5Ja3hPfP8FZgABzN8nYSU2uFgKetDTtL
s1a5Ja3hPfP8FZgABzN8nYSU2uFgKetDTtL
s1aKn13it5hsXHdUhFUXmp8f2Wj2tqo1CAi
s1aKn13it5hsXHdUhFUXmp8f2Wj2tqo1CAi
s1aKn13it5hsXHdUhFUXmp8f2Wj2tqo1CAi
s1aKn13it5hsXHdUhFUXmp8f2Wj2tqo1CAi
s1djunsw5pgbodthbrq9zGeEyKzDVvpSTEF
s1drJbyRARtXowrj4718TftHDo23RDPmKwr
s1dvGQ5d4pV4bhHBbfTUdvFHjgxgWtexm3d
s1fbJX6RRC4F4L3DxqXAKw8qmXmXw823vV1
s1hfcfXKP6vCBpAHyasEteVDrg3aQMgJZnA
s1hfcfXKP6vCBpAHyasEteVDrg3aQMgJZnA
s1hfcfXKP6vCBpAHyasEteVDrg3aQMgJZnA
Dump:
Array
(
[pools] => Array
(
[snowgem] => Array
(
[workers] => Array
(
[s1a5Ja3hPfP8FZgABzN8nYSU2uFgKetDTtL.MESGOrig2] => Array
(
[name] => s1a5Ja3hPfP8FZgABzN8nYSU2uFgKetDTtL.MESGOrig2
[diff] => 35226
[shares] => 21.5
[invalidshares] => 0
[currRoundShares] => 12.9
[currRoundTime] => 53.843
[hashrate] => 307805989.547
[hashrateString] => 615.61 Sol/s
[luckDays] => 0.244
[luckHours] => 5.862
[paid] => 0
[balance] => 0
)
[s1aKn13it5hsXHdUhFUXmp8f2Wj2tqo1CAi.1060X4] => Array
(
[name] => s1aKn13it5hsXHdUhFUXmp8f2Wj2tqo1CAi.1060X4
[diff] => 986
[shares] => 3.57442495
[invalidshares] => 0
[currRoundShares] => 1.11351463
[currRoundTime] => 103.943
[hashrate] => 51173460.8742
[hashrateString] => 102.35 Sol/s
[luckDays] => 1.469
[luckHours] => 35.260
[paid] => 0
[balance] => 0
)
解决方案
使用一个数组来存储输出的值,并检查你是否已经输出了这个值
$outputed_values = array();
foreach ($block as $blocks) {
$worker = $block['pools']['snowgem']['workers'];
foreach($worker as $workers) {
//$workers = array_unique($workers);
$workername = substr($workers['name'], 0, strpos($workers['name'], "."));
if (!in_array($workername, $outputed_values)){
echo $workername."<br>";
array_push($outputed_values, $workername);
}
}
}
推荐阅读
- node.js - 如何显示用户已连接到 GitHub
- laravel - Laravel 不断记录“无效请求(格式错误的 HTTP 请求)”
- vb.net - DataGridView 从另一个类调用时不显示任何内容,但使用表单按钮可以正常工作
- r - 错误:找不到函数“%||%”(管道百分比)
- c# - 如何在 C# 中将 PDF 文本坐标转换为图像文本坐标
- python - PHP7.4:OpenSSL AES-CFB 加密不同于 Python
- python - XPath 返回空字符串 Scrapy Python
- gitlab - GITLAB 中的私有项目访问令牌
- html - 使子元素适合屏幕大小而不会使用 css 或 Angular 溢出
- php - 如何检查数组是否有值?