比较时获取数组值

时间:2020-10-13 05:56:16

标签: php arrays

我有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和番石榴之外的所有水果都没有暗示?

3 个答案:

答案 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