我有一系列音乐曲目,在这个阵列中,由于在多张专辑中发行,同一首歌可以多次显示.我试图从数组中删除它们,以便只在列表中显示真正的唯一.
哈希看起来像这样:
"tracks" => [
[0] {
"id" => 1,
"Title" => "Intergalactic",
"ArtistName" => "Beastie Boys"
},
[1] {
"id" => 2,
"Title" => "Intergalactic",
"ArtistName" => "Beastie Boys"
}
]
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来删除基于Title密钥的重复项.无论如何这样做?
我正在检查array_unique函数.手册说它也会对值进行排序.但我无法看到它正在对值进行排序.请参阅我的示例代码.
$input = array("a" => "green", 3=>"red", "b" => "green", 1=>"blue", "red");
print_r($input);
$result = array_unique($input,SORT_STRING);
print_r($result);
The output is
Array
(
[a] => green
[3] => red
[b] => green
[1] => blue
[4] => red
)
Array
(
[a] => green
[3] => red
[1] => blue
)
Run Code Online (Sandbox Code Playgroud)
这里数组$ result没有排序.任何帮助表示赞赏.
谢谢Pramod
我的PHP数组有点问题.首先他们在这个数组中有数组,我试图删除重复.我做了一个我的阵列的print_r并打印出来....
Array (
[0] => Array ( [creditfeeid] => 318 [client] => Test 1 [adjustment] => 444.00 [issuedate] => 2012-02-10 20:27:00 [isrecurring] => No [comment] => 444 [commission] => 17.76 )
[1] => Array ( [creditfeeid] => 319 [client] => Test 1 [adjustment] => 333.00 [issuedate] => 2012-02-10 20:27:00 [isrecurring] => No [comment] => 333 [commission] => 9.99 )
[2] => Array ( [creditfeeid] => 320 [client] => Test 1 [adjustment] => 111.00 [issuedate] => 2012-02-10 20:27:00 [isrecurring] => No …Run Code Online (Sandbox Code Playgroud) 我有这样的数组
Array
(
[0] => Array
(
[id] => BA
[name] => British Airways
)
[1] => Array
(
[id] => BA
[name] => British Airways
)
[2] => Array
(
[id] => LA
[name] => Lanchile
)
[3] => Array
(
[id] => LA
[name] => Lanchile
)
[4] => Array
(
[id] => BA
[name] => British Airways
)
[5] => Array
(
[id] => BA
[name] => British Airways
)
)
Run Code Online (Sandbox Code Playgroud)
而且我想得到
Array
(
[0] => Array …Run Code Online (Sandbox Code Playgroud) 我找到了一些解决方案,但我无法决定使用哪种解决方案.array_unique()在不区分大小写的数组上使用php 函数的最紧凑有效的解决方案是什么?
例:
$input = array('green', 'Green', 'blue', 'yellow', 'blue');
$result = array_unique($input);
print_r($result);
Run Code Online (Sandbox Code Playgroud)
结果:
Array ( [0] => green [1] => Green [2] => blue [3] => yellow )
我们如何删除副本green?至于要删除哪一个,我们假设具有大写字符的重复是正确的.
例如,保持PHP删除php
或保持PHP删除,Php因为PHP有更多的大写字符.
结果将是
Array ( [0] => Green [1] => blue [2] => yellow )
请注意,已保留带大写的绿色.
我正在尝试学习如何使用array_unique,所以我制作了一些示例代码,但我没有得到我的预期.
$array[0] = 1;
$array[1] = 5;
$array[2] = 2;
$array[3] = 6;
$array[4] = 3;
$array[5] = 3;
$array[6] = 7;
$uniques = array_unique($array, SORT_REGULAR);
for($i = 0; $i < count($uniques); $i++)
echo $uniques[$i];
Run Code Online (Sandbox Code Playgroud)
例如,这给了我''15263'但不是7的输出.经过一些测试后,我认为它停止了它找到第一个副本.这是应该发生的吗?
I've stumbled upon something weird and I don't understand why it works that way.
I have an array of numbers, they are all unique:
$array = [
98602142989816970,
98602142989816971,
98602142989816980,
98602142989816981,
98602142989816982,
98602142989816983,
98602142989820095,
98602142989820096,
98602142989822060,
98602142989822061,
];
var_dump($array);
Run Code Online (Sandbox Code Playgroud)
array(10) {
[0]=>
int(98602142989816970)
[1]=>
int(98602142989816971)
[2]=>
int(98602142989816980)
[3]=>
int(98602142989816981)
[4]=>
int(98602142989816982)
[5]=>
int(98602142989816983)
[6]=>
int(98602142989820095)
[7]=>
int(98602142989820096)
[8]=>
int(98602142989822060)
[9]=>
int(98602142989822061)
}
Run Code Online (Sandbox Code Playgroud)
If I do print_r(array_unique($array)); everything is fine, I get:
Array
(
[0] => 98602142989816970
[1] => 98602142989816971
[2] …Run Code Online (Sandbox Code Playgroud) 谁能告诉我为什么这不能按预期工作?
<?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)
我想要的只是重复:|
你觉得什么更快?
要么
*user_id是一个外国关键约束*
下面是我的变量,
$string = 'AAA,BBB,aAA,BbB,AAA,BbB';
Run Code Online (Sandbox Code Playgroud)
我需要下面的唯一字符串结果,
$string = 'AAA,BBB,aAA,BbB';
Run Code Online (Sandbox Code Playgroud)
如何使其独特就像array_unique()函数一样,是否有任何默认的String函数来删除PHP中的重复字符串?
array-unique ×10
php ×9
arrays ×5
distinct ×1
duplicates ×1
function ×1
mysql ×1
ruby ×1
string ×1