Php 从数组结构中提取值
以下是我的数组结构:Php 从数组结构中提取值,php,arrays,Php,Arrays,以下是我的数组结构: array ( 'ALCAR STAHLRAD' => array ( 'diametru' => array ( 0 => 15, 6 => 16, 9 => 14, 14 => 13, 20 => 17, 468 => 20, ), ........... 我在做那个代码: $diametru = ''; fore
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='';
foreach($key=>$val的项目){
$diametru.=“$key[array]['diametru']=>$val”;
}
打印(直径);
我希望在“选项”中添加“直径”值
15
16
14
..............
但结果是:
A['diametru']=>ArrayE['diametru']=>ArrayD['diametru']=>ArrayD['diametru']]。。。
提前感谢您的任何想法:)首先获取您的第一个元素:
$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);
diametru='';
foreach($key=>$val){
$diametru.=''.$key.=>'.$val';
}
打印(直径);
编辑:如果要添加数组\u unique
和排序\u NUMERIC
,请查看我编辑的代码
如果您不想使用foreach,您可以通过使用foreach来完成
$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>";
$arr=array('ALCAR STAHLRAD'=>array('diametru'=>array(0=>15,6=>16,7=>16,9=>14,14=>13,20=>17468=>20,);
$option_arr=数组_列($arr,'diametru');
函数生成_选项($item,$key)
{
回显“$key.”:“$item.”;
}
$options=array_unique($option_arr[0]);//您可以在此处添加数组\u unique和排序\u NUMERIC
asort($options);//如果需要按键排序,则需要使用asort。因为array_unique从数组中删除重复项,但实际上不排序。
回声“;
数组_walk_recursive($options,'generate_option');
回声“;
您必须使用嵌套的foreach来获得所需的结果。如果只使用一个foreach,我只需要键值的key,然后再次使用键值的key,但我不知道如何提取该值我也在尝试:$diametru.=“[$key][$key]=>$val”;但是仍然没有提取我需要的值;它也可能是一个或多个元素,我不能逐个地对每个元素进行提取和迭代。您对在示例中添加“array\u unique”和“SORT\u NUMERIC”有什么想法吗?再次感谢您!“array\u unique”可以正常工作,但“SORT\u NUMERIC”不能:(我只使用“.$item.”,也许您对$key进行了排序values@Gafwebmaster你想按键排序还是按值排序?我想按值排序
$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>";