Php 防止添加重复阵列

Php 防止添加重复阵列,php,multidimensional-array,Php,Multidimensional Array,在JavaScript中有这样做的方法,但在PHP中它们似乎不起作用: $myArray=array( 排列( “姓名”=>“无名氏”, “占用”=>“拖缆” ), 排列( “name”=>“Jena Doe”, “职业”=>“送货服务” ) ); $newItem=array( “姓名”=>“无名氏”, “职业”=>“送货服务” ); //现在检查名称是否已经存在 //防止添加重复的John Doe克隆 if(!array_map(函数($i){if($i['name']===$newItem

在JavaScript中有这样做的方法,但在PHP中它们似乎不起作用:

$myArray=array(
排列(
“姓名”=>“无名氏”,
“占用”=>“拖缆”
),
排列(
“name”=>“Jena Doe”,
“职业”=>“送货服务”
)
);
$newItem=array(
“姓名”=>“无名氏”,
“职业”=>“送货服务”
);
//现在检查名称是否已经存在
//防止添加重复的John Doe克隆
if(!array_map(函数($i){if($i['name']===$newItem['name'])返回true;否则返回false;},$myArray)){
$myArray[]=$newItem;
}

为什么我会得到未定义的变量:$newItem,我如何才能做到这一点?

在添加之前,您可以使用数组中的
进行简单测试,查看新数组是否包含重复的名称

$src = array(
    array(
        "name"          => "John Doe",
        "occupation"    => "streamer"
    ),
    array(
        "name"          => "Jena Doe",
        "occupation"    => "delivery services"
    )
);
$new=array(
    "name"              => "John Doe",
    "occupation"        => "delivery services"
);


if( !in_array( $new['name'], array_values( array_column( $src, 'name' ) ) ) ){
    $src[]=$new;
}

因为
$newItem
函数($i){
之外。谢谢,所以我必须对每个
进行一次很好的处理。您可以使用
use
关键字将一个变量从父范围导入回调函数。