假设我有一个这样的数组:
$array = array(
0 =>
array (
'value' => '1' ,
'name' => 'dasdfa sadfa' ),
1=> Array (
'value' => 'adresa@gmail.com' ,
'name' => 'd2' ),
21 =>
array(
'value' => 'adresa@gmail.com' ,
'name' => 'name1`' ),
23 =>
array(
'value' => 'popescu.catalina@gmail.com' ,
'name' => 'POPESCU CATALINA' ),
24 =>
array(
'value' => 'popescu.catalina@gmail.com' ,
'name' => 'POPESCU CATALINA' ),
26 =>
array(
'value' => 'ricardo.ramos@amadeus.com',
'name' => '43414 Test01'),
27 =>
array(
'value' => 'sta3no213123ct3av@yahoo.com',
'name' => 'oct oct' )
);
我想知道数组中是否存在具有键'value'的重复值我知道如果我想要一个指定的值但是一般没有。结果必须是没有重复值的数组(例如:
$array = array(
0 =>
array (
'value' => '1' ,
'name' => 'dasdfa sadfa' ),
1=> Array (
'value' => 'adresa@gmail.com' ,
'name' => 'd2' ),
23 =>
array(
'value' => 'popescu.catalina@gmail.com' ,
'name' => 'POPESCU CATALINA' ),
26 =>
array(
'value' => 'ricardo.ramos@amadeus.com',
'name' => '43414 Test01'),
27 =>
array(
'value' => 'sta3no213123ct3av@yahoo.com',
'name' => 'oct oct' )
);`
请帮帮我。
这是我的尝试
function has_dupes($array){
$dupe_array = array();
foreach($array as $val){
if(++$dupe_array[$val] > 1){
return true;
}
}
return false;
}
答案 0 :(得分:2)
尝试这种方式:
$array = array(
'0' =>
array (
'value' => '1' ,
'name' => 'dasdfa sadfa' ),
'1'=> Array (
'value' => 'adresa@gmail.com' ,
'name' => 'd2' ),
'21' =>
array(
'value' => 'adresa@gmail.com' ,
'name' => 'name1`' ),
'23' =>
array(
'value' => 'popescu.catalina@gmail.com' ,
'name' => 'POPESCU CATALINA' ),
'24' =>
array(
'value' => 'popescu.catalina@gmail.com' ,
'name' => 'POPESCU CATALINA' ),
'26' =>
array(
'value' => 'ricardo.ramos@amadeus.com',
'name' => '43414 Test01'),
'27' =>
array(
'value' => 'sta3no213123ct3av@yahoo.com',
'name' => 'oct oct' )
);
$array = array_map("unserialize", array_unique(array_map("serialize", $array)));
答案 1 :(得分:1)
$result = array_unique($array);
print_r($result);
如果您想将所有唯一数据存储在一个数组中,请执行以下操作:
//declare $array
$unique_array = array();
foreach ($array as $key => $type) {
foreach($type as $vale => $name) {
if ($vale == 'value') {
//echo $name . '<br>';
array_push($unique_array, $name);
}
}
}
$result = array_unique($unique_array);
foreach ($result as $res) {
echo $res . '<br>';
}
答案 2 :(得分:1)
试试这个
$values = array_map("unserialize", array_unique(array_map("serialize", $array)));
foreach ($values as $key => $value)
{
if ( is_array($value) )
{
$values[$key] = $value;
}
}
print_r($values);
答案 3 :(得分:0)
$unique_data = array(); // the result array
$duplicate_data = array();
$seen = array();
foreach ($array as $key => $arr) {
$value = $arr['value'];
if (!isset($seen[$value])) {
$seen[$value] = '';
$unique_data[$key] = $arr;
} else {
$duplicate_data[$key] = $arr; // optional
}
}
unset($seen); // optional in function scope