{"id":131,"date":"2020-11-18T23:29:26","date_gmt":"2020-11-18T23:29:26","guid":{"rendered":"http:\/\/jplatz.com.br\/syntax\/?p=131"},"modified":"2020-12-10T23:06:42","modified_gmt":"2020-12-10T23:06:42","slug":"php-como-verificar-se-um-array-e-100-assoc","status":"publish","type":"post","link":"https:\/\/jplatz.com.br\/syntax\/2020\/11\/18\/php-como-verificar-se-um-array-e-100-assoc\/","title":{"rendered":"PHP Como verificar se um Array \u00e9 100% ASSOC"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>function isFullyAssoc($array) {\n  return count(array_filter($array, 'is_string', ARRAY_FILTER_USE_KEY)) === count($array);\n}\n\necho isFullyAssoc(&#91;'x' => 'xis', 'banana', 1, true]); \/\/ false\necho isFullyAssoc(&#91;'x' => 'xis', 'y' => 1, 'z' => true]); \/\/ true<\/code><\/pre>\n\n\n\n<p>Pois \u00e9, n\u00e3o sei quando voc\u00ea vai precisar validar se um array possui todos os elementos indexados com chave associativa, mas eu precisei hoje.<\/p>\n\n\n\n<p>Independentemente da necessidade, achei legal apresentar esta solu\u00e7\u00e3o por que n\u00e3o encontrei muito material navegando pela internet.<\/p>\n\n\n\n<p>Como o PHP n\u00e3o possui uma fun\u00e7\u00e3o nativa para esta valida\u00e7\u00e3o o jeito foi improvisar mesmo, ent\u00e3o vamos explicar o conceito do enjambre.<\/p>\n\n\n\n<p>Utilizamos ARRAY_FILTER para segregar todos os elementos cujos \u00edndices sejam do tipo STRING. Para isto basta informar a pr\u00f3pria fun\u00e7\u00e3o IS_STRING do PHP como CALLBACK function. <\/p>\n\n\n\n<p>Al\u00e9m disto temos que especificar para ARRAY_FILTER que queremos observar os \u00edndices, e n\u00e3o os valores, do array no processo de filtragem. Assim devemos informar o terceiro argumento ARRAY_FILTER_USE_KEYS.<\/p>\n\n\n\n<p>No final basta comparar a quantidade de elementos filtrados com a quantidade de elementos da array original. Se houver diverg\u00eancia nesta compara\u00e7\u00e3o isto indica seguramente que algum \u00edndice do array original n\u00e3o era ASSOC.<\/p>\n\n\n\n<p>Afinal de contas, ARRAY \u00e9 masculino ou feminino? Vai saber, depois de escrito o texto percebi que mesclei os g\u00eaneros, mas no review final ficou menino mesmo! <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pois \u00e9, n\u00e3o sei quando voc\u00ea vai precisar validar se um array possui todos os elementos indexados com chave associativa, mas eu precisei hoje. Independentemente da necessidade, achei legal apresentar esta solu\u00e7\u00e3o por que n\u00e3o encontrei muito material navegando pela internet. Como o PHP n\u00e3o possui uma fun\u00e7\u00e3o nativa para esta valida\u00e7\u00e3o o jeito foi [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26,2,3],"tags":[63,64],"class_list":["post-131","post","type-post","status-publish","format-standard","hentry","category-backend","category-coding","category-php","tag-array","tag-assoc"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts\/131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/comments?post=131"}],"version-history":[{"count":13,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts\/131\/revisions"}],"predecessor-version":[{"id":145,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/posts\/131\/revisions\/145"}],"wp:attachment":[{"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/media?parent=131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/categories?post=131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jplatz.com.br\/syntax\/wp-json\/wp\/v2\/tags?post=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}