foreach — Как создать массив с парами ключевых значений в переполнении стека

Кто-нибудь может мне помочь с этой проблемой в PHP?

Мой код:

for ($i=0; $i < count($respuestajson['options']); $i++) {
foreach ($respuestajson['options'][$i] as $id => $nombre) {
if($id == "label" || $id == "value"){
$proyectosZP[$i][$id] = $nombre;
}
}
}

Мой текущий вывод:

array (size=2)
0 =>
array (size=2)
'label' => 'CEV'
'value' => '10100'
1 =>
array (size=2)
'label' => 'CEX'
'value' => '10004'

Мне нужен этот вывод:

array (size=2)
'CEV' => '10100'
'CEX' => '10004'

Большое спасибо заранее.

-1

Решение

Просто проследите ваш массив в foreach и объедините их

$input_array = array(
array("label"=>"CEV",'value' => '10100'),array("label"=>"CEX",'value' => '10004')
);

$new_array = array();
foreach($input_array as $elements)
{
$new_array[$elements['label']]=$elements['value'];
}
print_r($new_array);

Или из вашего кода:

for ($i=0; $i < count($respuestajson['options']); $i++) {
$proyectosZP[$respuestajson['options'][$i]['label']] = $respuestajson['options'][$i]['value'];
}
1

Другие решения

глядя на ваши данные

Вы должны использовать только $ id и $ nombre

    foreach ($respuestajson['options'] as $id => $nombre) {
$proyectosZP[$id] =  $nombre;
}
0

Вы тестируете ключи, но можете получить к ним доступ напрямую:

foreach ($respuestajson['options'] as $opt) {
$proyectosZP[$opt['label']] = $opt['value'];
}

Или из токового выхода:

$output = array_combine(array_column($input_array, 'label'),
array_column($input_array, 'value'));
0
По вопросам рекламы [email protected]