2017-04-26 103 views
-1

我有這種數組顯示在圖片中。我如何可以插入在選擇選項的值在選擇循環陣列

<option value="7">7</option> 
<option value="13000">13000</option> 
<option value="19AAAAA">19AAAAA</option> 
<option value="sdsdas">sdsdas</option> 
<option value="dasdasdasd">dasdasdasd</option> 

Array Pic

+1

使單個數組,然後通過它循環。 – webpic

+0

單個陣列不是解決方案 – Xravn

+0

是否要將它們分組爲這個3D php陣列?optgroup可能是一個解決方案。但是你至少需要將php數組減少到2D – vishva8kumara

回答

3

簡單地展平多維數組,然後遍歷它。

假設你原來的多維數組中$arr

$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr)); 
foreach($it as $value){ 
    ?> 
    <option value="<?php echo $value; ?>"><?php echo $value; ?></option> 
    <?php 
} 

下面是相關參考文獻:

+0

嗨,對不起,這個評論不適合你,只是把它移到另一個答案。對於那個很抱歉。 – Auris

+0

@Auris沒有問題。 :-) –

+0

是的,謝謝 它的工作 – Xravn

0

你需要平面數組。你可以用遞歸函數來完成它。這裏你有一般的功能。

/** 
* Get multilevel array convert to single-level array 
* @param $array 
* @return array 
*/ 
function getFlattened($array) { 
    $flattened = []; 
    foreach ($array as $flat) { 
     if (is_array($flat)) { 
      $flatArray = array_merge($flatArray, getFlattened($flat)); 
     } else { 
      $flattened[] = $flat; 
     } 
    } 

    return $flattened; 
} 

當然,您可以使用該方法遞歸地顯示選擇 - 不僅適用於平面陣列。

0
<?php foreach($array as $inner): ?> 
    <?php foreach($inner as $innerTwo): ?> 
     <?php foreach($innerTwo as $item): ?> 
      <option value="<?= $item ?>"><?= $item ?></option> 
     <?php endforeach; ?> 
    <?php endforeach; ?> 
<?php endforeach; ?> 
+0

否索引可能是[0],或者可能高達100 – Xravn

+0

ok,更新以匹配所有級別上的多個索引。你只在一個地方使用它,這個解決方案很好,如果你需要重用這個功能,lukdur的遞歸陣列展平的建議會更好的工作 – Auris

0
<?php 
foreach($arr as $val){ 
    foreach($val as $val2){ 
     foreach($val2 as $val3){ ?> 
      <option value="<?php echo $val3;?>"><?php echo $val3 ;?></option><?php 
     } 
    } 
} 
?> 
+0

你的val2 ==數組 – Auris

0

你可以試試這個。

<?php 
$input = Array(
    Array 
(
    0 => 7, 
    1 => 13000 
), 
Array 
(
    0 => '19AAAAA', 
    1 => 'sdsdas' 
) 
    ); 


$options = ""; 
$result = call_user_func_array("array_merge", $input); 

for($i = 0;$i< count($result);$i++){ 


    $options .="<option value='".$result[$i]."'>".$result[$i]."</option>"; 


} 

echo $options;