2016-11-30 3 views
2

Я работаю над проектом с API.Проверьте, существует ли значение в массиве с php

Собираю данные из формы и отправляю их на их сайт.

Данные собраны через массив, а затем кодируются в формат 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, это получить запрос возвращает многомерный массив:

$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) 
        "[email protected]" ["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) 
      "[email protected]" ["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) 
        "[email protected]" ["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) 
      "[email protected]" ["phone"] => string(8) 
      "06269684" 
     } 
    }["errors"] => NULL["debug"] => NULL 
} 

Я не хочу двойных значений. Например, если 'first_name' => $_POST['billing_first_name'], (в переменной $pers_payload) существует в $ tet как значение. затем Dont запустить

$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 не существует

+0

В вашем примере вы имеете '$ тет [ 'данных'] [0] [ 'first_name'] = "Kevin1"' и '$ Tet [ 'data'] [1] ['first_name'] = "Kevin1" '. Таким образом, ваш 'makeApiCall' никогда не будет вызван для этого образца данных – krlv

+0

Где вы видите, что @krlv –

+0

в вашем var_dump '$ tet', сэр. У вас есть «first_name», установленное в «Kevin1» для обоих элементов в '$ tet ['data']'. – krlv

ответ

0

Я нашел решение.

Я совершил это с простой, если заявление:

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)); 
} 
Смежные вопросы