PHP: concatenação de elementos de matriz multidimensionais

Quero concatenar um elemento de uma multidimensional array com algumas cordas.

 array('big'=>'cow', 'small'=>'duck'), 'jungle' => array('big'=>'bear', 'small'=>'fox') ); $string3 = 'cat'; $type = 'farm'; $size = 'big'; $string = "$string1 $string2[$type][$size] $string3"; echo($string); ?> 

Ao usar esta syntax para $ string, eu recebo:

dog Array [big] cat

Gostaria de não usar a syntax alternativa

 $string = $string1 . ' ' . $string2[$type][$size] . ' ' . $string3; 

que funciona.

O que há de errado com “$ string1 $ string2 [$ type] [$ size] $ string3”?

Use a “syntax complexa”:

 $string = "$string1 {$string2[$type][$size]} $string3"; 

A análise variável do PHP é bastante simples. Ele reconhecerá um access de matriz de um nível, mas não mais nível. Ao include a expressão em {} você declara explicitamente qual parte da string é uma variável.

Veja PHP – Análise variável .

Eu não sou um fã de syntax complexa, ou análise variável em strings. Normalmente eu usaria a syntax “alternativa” que você descreveu. Você também poderia fazer isso:

 $string = implode(' ', array($string1, $string2[$type][$size], $string3)); 

Usa isto:

 $string = "$string1 {$string2[$type][$size]} $string3"; 
Intereting Posts