Мне нужно получить значение из массива следующим образом:
array (size=1)
'row_3' =>
array (size=1)
'viagem' =>
array (size=10)
'veiculo_id' => string '1' (length=1)
'motorista_id' => string '1' (length=1)
'data' => string '2019-06-05' (length=10)
'destino' => string 'A' (length=1)
'vrUnit' => string '' (length=0)
'horaSaida' => string '00:00:00' (length=8)
'horaChegada' => string '00:00:00' (length=8)
'kmInicial' => string '' (length=0)
'kmFinal' => string '' (length=0)
'autorizado' => string 'A' (length=1)
Если я использую $var = $_POST['data']['row_3']['viagem']['destino']; эту работу.
Но ключ ['row_3'] не фиксируется, ключ может быть ['row_5'], ['row_10'] и т.д.
Итак, мой вопрос в том, как я могу получить значение, используя такой код, как $var = $_POST['data']??something??['viagem']['destino'];?






Здесь может подойти array_column или несколько уровней array_shift, скорее всего там или четыре array_shift:
array_shift(array_shift(array_shift($_POST)))['destino'];
Я стараюсь $_POST и $_POST['data']
Пытаться:
$var = $_POST['data'][array_keys($_POST['data'])[0]]['viagem']['destino'];
$var = $_POST['data'][array_keys($_POST['data'])[0]]['viagem']['destino']; работает. Спасибо
Вам просто нужно получить доступ к известным ключам на выбранную вами глубину, а затем получить динамический ключ с помощью key()
Код: (Демо)
$_POST = [
'data' => [
'row_3' => [
'viagem' => [
'veiculo_id' => '1',
'motorista_id' => '1',
'data' => '2019-06-05',
'destino' => 'A',
'vrUnit' => '',
'horaSaida' => '00:00:00',
]
]
]
];
echo $_POST['data']['row_3']['viagem']['destino'];
echo "\n---\n";
$rowKey = key($_POST['data']); // no need to generate an entire temporary array of keys
echo $_POST['data'][$rowKey]['viagem']['destino'];
Выход:
A
---
A
здесь результат пустой