防止添加重复数组



在JavaScript中有办法做到这一点,但在PHP中它们似乎不起作用:

$myArray = array(
array(
"name" => "John Doe",
"occupation" => "streamer"
),
array(
"name" => "Jena Doe",
"occupation" => "delivery services"
)
);
$newItem = array(
"name" => "John Doe",
"occupation" => "delivery services"
);
// now check if the name already exists
// to prevent from adding a duplicate clone of John Doe
if (!array_map(function($i){ if ($i['name'] === $newItem['name']) return true; else return false; }, $myArray)) {
$myArray[] = $newItem;
}

为什么我得到Undefined variable: $newItem,我怎么能做到这一点?

您可以使用in_array使用一个简单的测试来查看新数组是否包含重复的名称,然后再添加?

$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;
}

最新更新