Funções do WordPress (especialmente na classe $wpdb. método 'get_results()', etc.), e se o array de retorno tem apenas um elemento, mas é um array associativo, há vários casos em que loops aninhados são usados para recuperar o valor. Ele tem sido redundante em código e ineficiente por muito tempo... Encontrei uma forma de melhorar dessa vez, então pensei em deixar aqui como uma DICA.
$array = array(
Array(
'key_1' => 'value_1',
'key_2' => 'value_2',
),
);
foreach ($array como $nested_array) {
foreach ($nested_array as $key => $value) {
Echo 'Array["' . $key . '"] => "' . $value . '"<br />';
}
}
Até agora, eu costumava obter valor aninhando o loop foreach assim (não inútil, mas também não eficiente) aninhando o array associativo... Então, me pergunto se consigo resolver o aninhamento desse array associativo e loop e escrever um processo simples... Tentei várias funções do array PHP. Você pode usar funções que não usa muito, como 'array_reduce()' ou 'array_walk()', e pode montar suas próprias funções para resolver o aninhamento, mas você precisa preparar sua própria função, o que não é inteligente... Tentei tentativa e erro para ver se conseguia resolver com apenas uma linha, e consegui! Você pode obter o elemento líder com 'array_shift()' e sobrescrever a variável original do array.
$array = array_shift($array);
Mas se isso for tudo, até mesmo um ou mais elementos do array serão sobrescrevidos, então vou fazer o julgamento do número de elementos.
$array = (contagem($array) == 1) ? array_shift($array) : $array;
Quando reescrevi o primeiro código usando esse código,
$array = array(
Array(
'key_1' => 'value_1',
'key_2' => 'value_2',
),
);
$array = (contagem($array) == 1) ? array_shift($array) : $array;
foreach ($array as $key => $value) {
Echo 'Array["' . $key . '"] => "' . $value . '"<br />';
}
Bem, foi muito revigorante. Meu moyamoya também melhorou.