Kei*_*gan 4 php arrays duplicates array-unique
谁能告诉我为什么这不能按预期工作?
<?php
$merchant_string = '123-Reg|Woolovers|Roxio|Roxio|BandQ|Roxio|Roxio|Big Bathroom Shop|Roxio|Robert Dyas|Roxio|Roxio|PriceMinister UK|Cheap Suites|Kaspersky|Argos|Argos|SuperFit|PriceMinister UK|Roxio|123-Reg';
$merchant_array = explode('|', $merchant_string);
for($i = 0; $i<count($merchant_array); $i++)
{
$merchant_array = array_unique($merchant_array);
echo $merchant_array[$i] . '<br />';
}
?>
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
Woolovers
Roxio
BandQ
Big Bathroom Shop
Robert Dyas
Run Code Online (Sandbox Code Playgroud)
我想要的只是重复:|
Bol*_*ock 11
首先,您应该在循环之前调用它,因为它只需要过滤一次.
其次,使用时会保留密钥array_unique(),因此PHP会尝试遍历数组中不再存在的索引,并且最后可能会遗漏一些,因为count($merchant_array)现在返回的值较小.您需要先重置(使用array_values())键,然后循环它.
$merchant_array = array_values(array_unique($merchant_array));
for($i = 0; $i<count($merchant_array); $i++)
{
echo $merchant_array[$i] . '<br />';
}
Run Code Online (Sandbox Code Playgroud)
或者,使用foreach循环跳过array_values()调用:
$merchant_array = array_unique($merchant_array);
foreach ($merchant_array as $merchant) {
echo $merchant . '<br />';
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2000 次 |
| 最近记录: |