Loops 细枝递归菜单

Loops 细枝递归菜单,loops,frameworks,twig,slim,Loops,Frameworks,Twig,Slim,我有这张桌子 id | Type_number | Number 1 fax 01234 2 mobile 789-123 3 phone 000-555 4 fax 022354 5 phone 000-687 我需要按类型分组,并按类型列出分组中的号码 示例 FAX 01234 022354 mobile 789-123 phone 000-555 000-687 如果

我有这张桌子

id | Type_number | Number
1    fax           01234
2    mobile        789-123
3    phone         000-555
4    fax           022354
5    phone         000-687
我需要按类型分组,并按类型列出分组中的号码

示例

FAX
01234
022354

mobile
789-123

phone
000-555
000-687
如果我有此代码的密码:

<div class="colour_container">
{% for rec in list_number if rec.type == "fax" %}
{{ rec.type_number }}    {{ rec.number }}
{% endfor %}
</div>
    <div class="colour_container">
{% for rec in list_number if rec.type == "phone" %}
{{ rec.type_number }}    {{ rec.number }}
{% endfor %}
</div>

{如果rec.type==“fax”%}
{{rec.type_number}{{rec.number}}
{%endfor%}
{如果rec.type==“phone”%}
{{rec.type_number}{{rec.number}}
{%endfor%}
循环“for”功能仅适用于第二个编号中的第一个循环“fax”。
为什么?

这对我很有效。试试这个例子

index.php

<?php
require 'vendor/autoload.php';

$app = new \Slim\Slim(array(
    'view' => new \Slim\Views\Twig()
));

$view = $app->view();

$view->parserExtensions = array(
    new \Slim\Views\TwigExtension()
);

$view->parserOptions = array(
    'debug' => true
);

$menu = array(
    array(
        "id" => 1,
        "type" => "fax",
        "number" => "01234"
    ),
    array(
        "id" => 2,
        "type" => "mobile",
        "number" => "789-123"
    ),
    array(
        "id" => 3,
        "type" => "phone",
        "number" => "000-555"
    ),
    array(
        "id" => 4,
        "type" => "fax",
        "number" => "022354"
    ),
    array(
        "id" => 5,
        "type" => "phone",
        "number" => "000-687"
    )
);

$app->get('/', function () use($app, $menu) {
    $app->render('index.twig', array(
        'list_number' => $menu,
        'types' => array("fax", "mobile", "phone")
    ));
});

$app->run();

它对我很有用。试试这个例子

index.php

<?php
require 'vendor/autoload.php';

$app = new \Slim\Slim(array(
    'view' => new \Slim\Views\Twig()
));

$view = $app->view();

$view->parserExtensions = array(
    new \Slim\Views\TwigExtension()
);

$view->parserOptions = array(
    'debug' => true
);

$menu = array(
    array(
        "id" => 1,
        "type" => "fax",
        "number" => "01234"
    ),
    array(
        "id" => 2,
        "type" => "mobile",
        "number" => "789-123"
    ),
    array(
        "id" => 3,
        "type" => "phone",
        "number" => "000-555"
    ),
    array(
        "id" => 4,
        "type" => "fax",
        "number" => "022354"
    ),
    array(
        "id" => 5,
        "type" => "phone",
        "number" => "000-687"
    )
);

$app->get('/', function () use($app, $menu) {
    $app->render('index.twig', array(
        'list_number' => $menu,
        'types' => array("fax", "mobile", "phone")
    ));
});

$app->run();

在将
rec
数组传递到模板之前,是否可以尝试在PHP中转储该数组?您可以使用
print\r($rec)
输出数组的原始内容。在将
rec
数组传递到模板之前,是否可以尝试在PHP中转储该数组?您可以使用
print\r($rec)
输出数组的原始内容。在将
rec
数组传递到模板之前,是否可以尝试在PHP中转储该数组?您可以使用
print\r($rec)
输出数组的原始内容。它仅用于第一个循环。(第一种)@Simsar78我刚刚试过,它工作正常。你有两个版本1-2吗?我使用1.1版,因为我没有php7@Simsar78在本例中,我使用的是PHP5.6和Twig1.*。也许可以更容易地就您面临的问题创建另一个问题,包括您正在使用的软件包的版本和环境。这只是第一个循环的功能。(第一种)@Simsar78我刚刚试过,它工作正常。你有两个版本1-2吗?我使用1.1版,因为我没有php7@Simsar78在本例中,我使用的是PHP5.6和Twig1.*。也许可以更容易地就您面临的问题创建另一个问题,包括您正在使用的软件包的版本和环境。这只是第一个循环的功能。(第一种)@Simsar78我刚刚试过,它工作正常。你有两个版本1-2吗?我使用1.1版,因为我没有php7@Simsar78在本例中,我使用的是PHP5.6和Twig1.*。也许可以更容易地就您面临的问题创建另一个问题,包括您正在使用的软件包版本和环境。