Ho cercato e testato per un po 'di tempo e proprio non riesco a trovare se quello che sto cercando di realizzare è possibile il modo in cui sto andando su di esso.PHP Istruzione ternaria all'interno della matrice associativa per impostare sia la chiave che il valore?
Vorrei aggiungere una coppia chiave/valore a un array, quando si definisce l'array, in base a un'istruzione ternaria.
Array(
'Item 1' => 'Some value',
(FALSE)? NULL : 'Item 2' => 'Another Value'
)
mio/wanted comportamento previsto è per il risultato di essere poi:
Array (
[Item 1] => Some value
[Item 2] => Another Value
)
E quando l'affermazione è vera:
Array(
'Item 1' => 'Some value',
(TRUE)? NULL : 'Item 2' => 'Another Value'
)
Resa:
Array (
[Item 1] => Some value
)
Ma invece ottengo:
Array (
[Item 1] => Some value
[] => Another Value
)
che causa problemi poiché A) io non voglio che questo secondo elemento di esistere in primo luogo e B) Il valore della condizione False viene assegnato il valore True condizioni (in questo caso NULL, che imposta il chiave per NULL [])
Questo è molto particolare. È la mia unica opzione per avere un'istruzione if() {} standard e Pop l'elemento se la condizione è falsa (usando!) Nell'array?
Nota: avere un valore nullo per l'elemento 2 non è accettabile, piuttosto se la condizione iniziale è vera, nessun elemento deve esistere.
Qualsiasi aiuto sarebbe molto apprezzato!
99% sicuro che questo non è possibile, cioè, che è necessario utilizzare 'if'. Ci penserò un po 'di più e vedrò se riuscirò a fare meglio. – Austin
Non è possibile. O aggiungi un elemento a un array o non lo fai; non c'è modo di farlo condizionatamente in questo modo. Qual è esattamente il problema nell'usare un'istruzione 'if', comunque ...? Fa perfettamente il lavoro (qualcuno direbbe che è più intuitivo di un ternario). –
In realtà [è possibile] (http://stackoverflow.com/a/29327671/367456) ma di solito non vuoi farlo./cc @Austin – hakre