繁体   English   中英

用PHP检查数组中是否存在值

[英]Check if value exists in array with php

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

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

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

$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请求返回一个多维数组:

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

如果我在$ tet上执行var_dump,我得到以下信息:

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中作为值存在。 然后不要跑

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

否则运行:

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

我从另一个提出的问题尝试了这个问题:

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的值不存在,这也根本不会运行发布请求

我找到了解决方案。

我用一个简单的if语句实现了这一点:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM