用PHP检查数组中是否存在值 [英] Check if value exists in array with php

查看:74
本文介绍了用PHP检查数组中是否存在值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用API​​进行项目。

I'm working on a project with an API.

我从表单收集数据并将其发送到他们的网站。

I gather data from a form and send this to their website.

数据通过数组收集,然后编码为json格式:

The data is gathered through an array and then encoded to json format:

$pers_payload = array(
    'gender' => 'Unknown', //or Male / Female
    'first_name' => $_POST['billing_first_name'],
    'family_name'   => $_POST ['billing_last_name'],
    'email' => $_POST['billing_email'],
    'linked_as_contact_to_organization' => array(
        array(
            'organization_id' => $organization_id, // add the person as a contact to the newly created organization
            'work_email' => $_POST['billing_email'],
            'work_phone' => $_POST['billing_phone']
            )
        ),
    'visiting_address' => array(
        'country_code'          =>  'NL'
        ), // can be extented with other address data
    'postal_address' => array(
        'country_code'      =>  $_POST['billing_country'] 
    )   // can be extented with other address data
);

然后发布请求。

 $person = $SimplicateApi->makeApiCall('POST','/crm/person',json_encode($pers_payload));
    }

我也可以执行get请求,此get请求返回多维数组:

I can also do a get request, this get request returns a multi dimensional array:

$tet = $SimplicateApi->makeApiCall('GET','/crm/person?q[first_name]=Kevin1'); 

如果我在$ tet上执行了var_dump,我会得到:

If i do a var_dump on $tet i get this:

array(3) {
    ["data"] => array(2) {
        [0] => array(11) {
            ["id"] => string(39)
            "person:067af3bd2045824e62ac579e634623b8" ["interests"] => array(1) {
                [0] => array(3) {
                    ["value"] => bool(false)["id"] => string(25)
                    "interest:f278f47e6e9d48b8" ["name"] => string(19)
                    "Actief in Duitsland"
                }
            }["simplicate_url"] => string(51)
            "https://emark.simplicate.nl/crm/person/view?id=3552" ["avatar"] => array(2) {
                ["initials"] => string(2)
                "Kt" ["color"] => string(7)
                "#03e084"
            }["linked_as_contact_to_organization"] => array(1) {
                [0] => array(7) {
                    ["id"] => string(46)
                    "contactperson:0f16f418f1845749c79bebf9e1e753e5" ["organization_id"] => string(45)
                    "organization:8632b86ba41637262e0871767f96f43e" ["name"] => string(9)
                    "testing12" ["work_email"] => string(24)
                    "ma@e-marketingsupport.nl" ["work_phone"] => string(8)
                    "06269684" ["work_mobile"] => string(8)
                    "06269684" ["interests"] => array(16) {
                        [0] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:456e8b19c0079647" ["name"] => string(11)
                            "Twinkle 100"
                        }[1] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:a70e69b83382e85a" ["name"] => string(17)
                            "Bekend merk in NL"
                        }[2] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:ce50f1b5593ac180" ["name"] => string(15)
                            "Cross Border 30"
                        }[3] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:f40eca1b281969d6" ["name"] => string(20)
                            "Meerdere vestigingen"
                        }[4] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:7435d7409a07cefb" ["name"] => string(26)
                            "Meer dan 100k in Duitsland"
                        }[5] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:cc072cea856ea23a" ["name"] => string(17)
                            "B2B leadgeneratie"
                        }[6] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:f278f47e6e9d48b8" ["name"] => string(19)
                            "Actief in Duitsland"
                        }[7] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:9bbeb23d17283595" ["name"] => string(10)
                            "Exporteert"
                        }[8] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:97ed988af66b1abc" ["name"] => string(8)
                            "Debiteur"
                        }[9] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:3e31ffca2394bc38e1bb3149bee8b668" ["name"] => string(9)
                            "Marketing"
                        }[10] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:706fa5fa92c56081e1bb3149bee8b668" ["name"] => string(6)
                            "Amazon"
                        }[11] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:05f1a5da1c4c7df2e1bb3149bee8b668" ["name"] => string(3)
                            "Jur"
                        }[12] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:477554ee16a0c738e1bb3149bee8b668" ["name"] => string(11)
                            "Vertalingen"
                        }[13] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:f5f1b7512245a3b5e1bb3149bee8b668" ["name"] => string(5)
                            "Adres"
                        }[14] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:d1123dfaa0073c82e1bb3149bee8b668" ["name"] => string(4)
                            "GmbH"
                        }[15] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:7d3458131ea89afbe1bb3149bee8b668" ["name"] => string(3)
                            "Web"
                        }
                    }
                }
            }["gender"] => string(7)
            "Unknown" ["first_name"] => string(6)
            "Kevin1" ["family_name"] => string(7)
            "testing" ["full_name"] => string(14)
            "Kevin1 testing" ["email"] => string(24)
            "ma@e-marketingsupport.nl" ["phone"] => string(8)
            "06269684"
        }[1] => array(11) {
            ["id"] => string(39)
            "person:067af3bd2045824ea8c16e7ea0baf9d6" ["interests"] => array(1) {
                [0] => array(3) {
                    ["value"] => bool(false)["id"] => string(25)
                    "interest:f278f47e6e9d48b8" ["name"] => string(19)
                    "Actief in Duitsland"
                }
            }["simplicate_url"] => string(51)
            "https://emark.simplicate.nl/crm/person/view?id=3553" ["avatar"] => array(2) {
                ["initials"] => string(2)
                "Kt" ["color"] => string(7)
                "#dce1f3"
            }["linked_as_contact_to_organization"] => array(1) {
                [0] => array(7) {
                    ["id"] => string(46)
                    "contactperson:f48fdcaaff0211e728a2e4ccf197900b" ["organization_id"] => string(45)
                    "organization:8632b86ba41637262e0871767f96f43e" ["name"] => string(9)
                    "testing12" ["work_email"] => string(24)
                    "ma@e-marketingsupport.nl" ["work_phone"] => string(8)
                    "06269684" ["work_mobile"] => string(8)
                    "06269684" ["interests"] => array(16) {
                        [0] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:456e8b19c0079647" ["name"] => string(11)
                            "Twinkle 100"
                        }[1] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:a70e69b83382e85a" ["name"] => string(17)
                            "Bekend merk in NL"
                        }[2] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:ce50f1b5593ac180" ["name"] => string(15)
                            "Cross Border 30"
                        }[3] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:f40eca1b281969d6" ["name"] => string(20)
                            "Meerdere vestigingen"
                        }[4] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:7435d7409a07cefb" ["name"] => string(26)
                            "Meer dan 100k in Duitsland"
                        }[5] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:cc072cea856ea23a" ["name"] => string(17)
                            "B2B leadgeneratie"
                        }[6] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:f278f47e6e9d48b8" ["name"] => string(19)
                            "Actief in Duitsland"
                        }[7] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:9bbeb23d17283595" ["name"] => string(10)
                            "Exporteert"
                        }[8] => array(3) {
                            ["value"] => bool(false)["id"] => string(25)
                            "interest:97ed988af66b1abc" ["name"] => string(8)
                            "Debiteur"
                        }[9] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:3e31ffca2394bc38e1bb3149bee8b668" ["name"] => string(9)
                            "Marketing"
                        }[10] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:706fa5fa92c56081e1bb3149bee8b668" ["name"] => string(6)
                            "Amazon"
                        }[11] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:05f1a5da1c4c7df2e1bb3149bee8b668" ["name"] => string(3)
                            "Jur"
                        }[12] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:477554ee16a0c738e1bb3149bee8b668" ["name"] => string(11)
                            "Vertalingen"
                        }[13] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:f5f1b7512245a3b5e1bb3149bee8b668" ["name"] => string(5)
                            "Adres"
                        }[14] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:d1123dfaa0073c82e1bb3149bee8b668" ["name"] => string(4)
                            "GmbH"
                        }[15] => array(3) {
                            ["value"] => bool(false)["id"] => string(41)
                            "interest:7d3458131ea89afbe1bb3149bee8b668" ["name"] => string(3)
                            "Web"
                        }
                    }
                }
            }["gender"] => string(7)
            "Unknown" ["first_name"] => string(6)
            "Kevin1" ["family_name"] => string(7)
            "testing" ["full_name"] => string(14)
            "Kevin1 testing" ["email"] => string(24)
            "ma@e-marketingsupport.nl" ["phone"] => string(8)
            "06269684"
        }
    }["errors"] => NULL["debug"] => NULL
}

我不要双精度值。例如,如果 first_name => $ _POST [’billing_first_name’],(在 $ pers_payload 变量中)作为值存在于$ tet中。然后不要运行

I dont want double values. For example if 'first_name' => $_POST['billing_first_name'],(in the $pers_payload variable) exists in $tet as a value. then dont run

$person = $SimplicateApi->makeApiCall('POST','/crm/person',json_encode($pers_payload));
    }

其他运行:

$person = $SimplicateApi->makeApiCall('POST','/crm/person',json_encode($pers_payload));
    }

我从另一个问过的问题中尝试过此操作:

I tried this from another question i asked:

foreach (array_keys($tet['data']) as $key) {
    if (array_key_exists('first_name', $tet['data'][$key])
        && (strcasecmp($tet['data'][$key]['first_name'], 'Kevin1') == 0) ) {
        echo "found key 'first_name' with value '" . $tet['data'][$key]['first_name'] . "'\n";
    } else {
        // perform your post request
         $person = $SimplicateApi->makeApiCall('POST','/crm/person',json_encode($pers_payload));
    }
}

这甚至不会运行发布请求如果 first_name 的值不存在

This doesn't run the post request at all even if the value of first_name doesnt exist

推荐答案

我找到了解决方案。

我用一个简单的if语句完成了此操作:

I accomplished this with a simple if statement:

if(strtolower($_POST['billing_last_name']) == strtolower($getOrg['data']['0']['linked_persons_contacts']['0']['family_name'])) {
// do nothing

} else {
    $person = $SimplicateApi->makeApiCall('POST','/crm/person',json_encode($pers_payload)); 
}

这篇关于用PHP检查数组中是否存在值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆