Php 检查值是否存在或排除重复值数组

Php 检查值是否存在或排除重复值数组,php,arrays,Php,Arrays,这是数组… $rt = array( '0' => array( 'nombre'=>'Jojo', 'fecah'=> '195', 'fch'=>'12' ), '1' => array( 'nombre'=>'Tito', 'fecah'=> '197', 'fch'=>'13' ), '2' => array(

这是数组…

$rt = array(
    '0' => array(
    'nombre'=>'Jojo',
    'fecah'=> '195',
    'fch'=>'12'
    ),
    '1' => array(
        'nombre'=>'Tito',
        'fecah'=> '197',
        'fch'=>'13'
    ),
    '2' => array(
        'nombre'=>'Jojo',
        'fecah'=> '195',
        'fch'=>'12'
    ),
    '3' => array(
        'nombre'=>'Joji',
        'fecah'=> '195',
        'fch'=>'12'
    ),
);
这是我的代码:

$a = array();
foreach ($rt as $k=>$v) {
    if (in_array($v['nombre'], $a) && in_array($v['fecah'], $a) && in_array($v['fch'], $a) ) {
        $a[]=$k;
        echo 'The name ' . $v['nombre'] .' is in the array<br>';
    } else {
        echo 'The name is not in the array <br>';
    }
}
$a=array();
foreach($rt为$k=>$v){
if(in_数组($v['nombre',$a)&&in_数组($v['fecah',$a)&&in_数组($v['fch',$a)){
$a[]=$k;
echo“name”。$v['nombre']”在数组中
; }否则{ echo“名称不在数组中
”; } }
正如你在数组索引[2]中看到的,信息也存在于索引[0]中,所以我不再需要它了,所以我需要一段时间来看看数据是否重复。。。如果数据是“唯一的”,那么用“唯一的”数据构建新的数组如果数据已经存在,那么跳到下一个,但是我需要比较3个键,而不仅仅是名称。。。那我该怎么做呢?

这是你需要的

$newarray = array();
foreach($rt as $key => $value)
{
    $nombre = $value['nombre'];
    if(!isset($newarray[$nombre])) 
    {
       $newarray[$nombre] = $value;
    }
}

当数组位于_数组中时插入数组,并使用和

你应该像这样颠倒你的密码

$a = array();
foreach ($rt as $k=>$v) {
    if (!in_array($v['nombre'], $a) || !in_array($v['fecah'], $a) || !in_array($v['fch'], $a) ) {
        $a[]=$k;
        echo 'The name ' . $v['nombre'] .' is in the array<br>';
    } else {
        echo 'The name is not in the array <br>';
    }
}
$a=array();
foreach($rt为$k=>$v){
如果(!in_数组($v['nombre',$a)| |!in_数组($v['fecah',$a)| |!in_数组($v['fch',$a)){
$a[]=$k;
echo“name”。$v['nombre']”在数组中
; }否则{ echo“名称不在数组中
”; } }
是和否,这样我只得到一个唯一的“数组”,这很好,但我需要知道哪些数组或值是重复的吗。。。如果您得到了唯一的数组,那么您可以进行一次diff来查找重复的值。dimmit!。。。你完全正确,我不知道我在想什么。。。所以我得到唯一数组
$unique\u arrs
,然后我只做一个
$repeated\u arrs=array\u diff($unique\u arrs,$rt)。。。对吗?好吧,那没用。。。据我所知,
array_diff()
只在简单数组上工作,而不是多维数组,因此我想我必须为每个数组构建第二个数组,
$arr2[]=$an->name'''$非卡
等等,就像单个字符串一样,但是接下来就是检索信息的问题,我可以将ID放在末尾,然后就是
substr()我需要什么,并构建第四个查询以查看信息。。。好吧,就像你理论上说的,它可能会起作用。。。谢谢……从概念上讲,这是您需要做的事情——返回到我标记的重复数组,而不是返回唯一数组(多维数组),如果这是您想要的,则返回公共值
array_diff()
将以相同的方式使用该函数,如果您正在序列化所有内容,请参考问题-“我需要比较3个键,而不仅仅是名称”,这是我已经拥有的,我需要检查数组的多个键…这不起作用,它是多维数组,因此您不能在_array()中使用
检查其中是否存在键,因为它们将比数组中的
更深一层()
检查。我看到的是他试图将数组的每一层更深一层插入一维数组,你说
如果(!in_数组($v['nombre',$a))
-但是
$a
是类似于:
数组(0=>数组)的数组('nombre'=>'whatever',etc'=>'foobar')
-不起作用。