如何在PHP中使用键值对创建数组

问题描述 投票:-1回答:3

任何人都可以帮我解决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'
php foreach keyvaluepair
3个回答
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'];
}

0
投票

期待您的数据

你应该使用$ 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'));
© www.soinside.com 2019 - 2024. All rights reserved.