从数组结构中提取值

时间:2018-10-24 12:41:14

标签: php arrays

这是我的数组结构:

array (
  'ALCAR STAHLRAD' => 
  array (
    'diametru' => 
    array (
      0 => 15,
      6 => 16,
      9 => 14,
      14 => 13,
      20 => 17,
      468 => 20,
    ),
...........

我正在执行该代码:

$diametru = '';
foreach ($items as $key => $val){
    $diametru .= "<option>$key[array]['diametru']=>$val</option>";
}
print_r($diametru);

我希望将“ diametru”值添加到我的“选项”中

<option>15</option>
<option>16</option>
<option>14</option>
..............

但输出为:

A ['diametru'] => ArrayE ['diametru'] => ArrayD ['diametru'] => ArrayD ['diametru'] ... 预先感谢您的任何想法:)

2 个答案:

答案 0 :(得分:1)

编辑:如果要添加array_uniqueSORT_NUMERIC,请参阅我的编辑代码。

如果不想使用foreach,可以通过array_columnarray_walk_recursive进行。

$arr = array ( 'ALCAR STAHLRAD' => array ( 'diametru' => array ( 0 => 15, 6 => 16, 7 => 16, 9 => 14, 14 => 13, 20 => 17, 468 => 20, ), ));
$option_arr = array_column($arr,'diametru');
function generate_option($item, $key)
{
    echo "<option>" . $key . " : ". $item . "</option>";
}

$options = array_unique($option_arr[0]); // You can add array_unique and SORT_NUMERIC here

asort($options); // If you want sort by key then you need to use asort. Because array_unique remove duplicate from array but doesn't sort actually.

echo "<select>";
array_walk_recursive($options, 'generate_option');
echo "</select>";

答案 1 :(得分:0)

首先获取您的第一个元素:

$alcar = $items[0]; // ALCAR STAHLRAD
// or
$alcar = $items['ALCAR STAHLRAD'];

然后获取直径数组:

$diameters = $alcar['diametru'];

只有这样,您才能进行循环:

diametru = '';
foreach ($diameters as $key => $val){
    $diametru .= '<option>'.$key.'=>'.$val.'</option>';
}
print_r($diametru);