我有2个数组i=0
fruit
第二个数组是 Array(
[0]=>'Apple',
[1]=>'orange',
[2]=>'guava'
)
Allfruits
然后进行空数组调用 Array(
[0]=>'Strawberry',
[1]=>'Manggo',
[2]=>'durian',
[3]=>'Apple',
[4]=>'guava')
我的问题是$data
数组中不存在Allfruits
成员时如何插入?
因此,在此示例中,我希望结果是数据数组中除Apple和番石榴之外的所有水果都没有暗示?
答案 0 :(得分:2)
这是一种简单的方法
$items_to_add = array_diff($array_fruit, $array_all_fruit);
$exclude_existing = array_diff($array_all_fruit, $array_fruit);
$new_array = array_merge($items_to_add, $exclude_existing);
答案 1 :(得分:0)
通过使用以下功能,您可以合并2个数组,而无需重复
function mergeArrayIfNotExist($childArray, $parentArray) {
for ($i = 0; $i < sizeof($childArray), $i++) {
if (!in_array($childArray[$i], $parentArray)) {
array_push($parentArray, $childArray[$i]);
}
}
return $parentArray;
}
答案 2 :(得分:0)
只需运行一个循环并在 $ data 数组中搜索值即可。如果它在数组中,则使用 array_search 函数获取它的索引并取消设置该值,否则将其添加到 $ data 数组中。最后,根据需要为数组重新索引。
$check = ['Apple','orange','guava'];
$data = ['Strawberry','Manggo','durian','Apple','guava'];
foreach ($check as $key => $value) {
if(( $index = array_search( $value, $data )) !== false ){
unset( $data[$index] );
}else{
$data[] = $value;
}
}
$data = array_values( $data ); //for re-indexing the array