Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数组结构中提取值_Php_Arrays - Fatal编程技术网

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>";