Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找数组中是否存在键_Php_Arrays - Fatal编程技术网

Php 查找数组中是否存在键

Php 查找数组中是否存在键,php,arrays,Php,Arrays,我正在使用API。 我使用阵列收集数据,然后将其发送到正在使用的软件。像这样: $pers_payload = array( 'gender' => 'Unknown', //or Male / Female 'first_name' => $_POST['billing_first_name'], 'family_name' => $_POST ['billing_last_name'], 'email' => $_POST['bil

我正在使用API。 我使用阵列收集数据,然后将其发送到正在使用的软件。像这样:

$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
);
然后我就这样发

// add the person to CRM

    $person = $SimplicateApi->makeApiCall('POST','/crm/person',json_encode($pers_payload));
当我打GET电话而不是像这样发帖时:

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

我相信它会返回一个所谓的多维数组:

  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\u name
存在于
$tet

我的尝试:

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

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

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

您可以使用
array\u key\u exists

if(数组密钥存在('first_name',$pers_payload)){
echo“无法执行此任务”;
}否则{
$person=$SimplicateApi->makeApiCall('POST','/crm/person',json_编码($pers_有效载荷));

}
从外部数组(
$tet['data']
)中选择数据元素,并迭代其成员。在每种情况下,使用或函数检查要查找的密钥是否存在:

foreach ($tet['data'] as $data) {
    if (array_key_exists('first_name', $data)) {
        echo "found key 'first_name' with value '" . $data['first_name'] . "'\n";
    } else {
        // perform your post request
    }
}

如果数组非常大,并且希望保持较低的内存消耗,以便代码能够很好地伸缩,则可以通过仅迭代数组键而不是复杂值来防止复制数据:

foreach (array_keys($tet['data']) as $key) {
    if (array_key_exists('first_name', $tet['data'][$key])) {
        echo "found key 'first_name' with value '" . $tet['data'][$key]['first_name'] . "'\n";
    } else {
        // perform your post request
    }
}

根据你在这里的补充评论,你的实际问题是另一个问题。不过,添加一个简单的不区分大小写的字符串比较可能就足够了:

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

那么,您从外部数组中选择
数据
元素,并迭代其成员。在每种情况下,使用
isset()
array\u key\u exists()
检查要查找的密钥是否存在。对我来说很直接…我在php方面不是很先进有些事情对我来说不是很直接对不起:L@arkaschaSure,我们一直都在学习。都很好。你能按照我的建议吗?这将搜索一个值“first\u name”,OP引用具有该名称的密钥。更好的做法是,
$pers\u payload
不是OP引用的数组。至少我是这样理解这个问题的。只需阅读问题的最后一句话……我知道如何解决它,但代码分析错误中有一个错误:语法错误,意外的“'\n”(T_CONSTANT_ENCAPSED_STRING),应为“,”或“;”@谢谢你的提示,修正了它,那是我愚蠢的键盘驱动坚持自动完成的结果;-)仍然运行POST请求事件,其中存在我输入的名称$tet@Kevin.a“你输入的名字”是什么?进入哪里?您在问题中没有提到任何名称,但关键“first_name”是否存在。你的问题是否真的没有问你到底在寻找什么?将其添加到问题中。