Php如何自动增加字符?

时间:2017-02-16 10:59:53

标签: php mysql

<?php
try {
    $stmt2 = $db->query("SELECT cid, parent, name FROM category");              
    $row_count = $stmt2->rowCount();
    if ($row_count) {
        $rows = $stmt2->fetchAll(PDO::FETCH_ASSOC);         
    }

} catch (PDOException $e) {
    echo $e->getMessage();  
}

$items = $rows;
$id = '';
echo "<select>";
foreach ($items as $item) {
    if ($item['parent'] == 0) {
        echo "<option><a href='#'>".$item['name']."</a>";
        $id = $item['cid'];
        sub($items, $id);
        echo "</option>";
    }
}
echo "</select>";

function sub($items, $id){        
    foreach ($items as $item) {
        if ($item['parent'] == $id) { 
            $x = '-';
            $x++;                                             
            echo "<option>".$x."<a href='#'>".$item['name']."</a>";           
            sub($items, $item['cid']);
            echo "</option>";                
        }
    }        
}
?>

这是我的下拉菜单代码。我想要这个&#34; - &#34;每个父项中的字符,并在每个父项中自动递增此字符。 喜欢这个选择菜单:

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为您需要使用str_repeat()

示例:

foreach ($items as $item) {
    if ($item['parent'] == 0) {
        echo "<option><a href='#'>".$item['name']."</a>";
        $id = $item['cid'];
        sub($items, $id, 1);
        echo "</option>";
    }
}
echo "</select>";

function sub($items, $id, $counter){     
    foreach ($items as $item) {
        if ($item['parent'] == $id) {                                   
            echo "<option>".str_repeat("-",$counter)."<a href='#'>".$item['name']."</a>";           
            sub($items, $item['cid'],$counter+1);
            echo "</option>";
        }
    }        
}