多维数组,比较值

时间:2017-10-27 14:40:56

标签: php arrays symfony multidimensional-array

我使用此命令在我的树枝模板中得到了这个

{{ dump(elements) }}

enter image description here

所以这个响应来自两个数组,第二个数组不完整,因为它太大了。我将首先调用它们[0]和第二个1数组。另外请记住,所有值都动态地进入模板,这意味着我需要使用我不能使用它,例如:elements [“master”]。

我必须看到第一个数组的值在第二个数组中。 (例如:其中our_network在第二个数组中)并获取1,2,3,4,5的值

请记住,我甚至可以影响这个API响应。

我正在使用Symfony 2.8。

我想获取元素1和元素1 [2]等的值。但只有我需要的地方。我需要它,如果元素1 ['our_network'] 1 == 1然后是一个行为,如果它等于元素1 ['our_netwrok'] 1 == 0然后其他行为。

如果您有任何建议或建议,请与我们联系。

2 个答案:

答案 0 :(得分:2)

我是通过PHP完成的,不知道你是否想要通过Twig ......

使用array_key_exists查看第一个数组中的元素是否存在于第二个数组中。还有两个循环。 foreach用于检查第一个数组中的每个元素,一个for循环用于打印元素值。

这是我的代码:

$elements = array(
                array("master","Home","our_network","doesnotexist"),
                array("master"      => array("master",     0,0,0,0,0),
                      "Home"        => array("Home",       0,0,0,0,0),
                      "our_network" => array("our_network",0,0,0,0,0))
                );
echo "<pre>\n";
print_r($elements);
echo "</pre>\n";

echo "<pre>\n";
foreach ($elements[0] as $section)
{
    echo "$section\n";
    if (array_key_exists($section,$elements[1]))
    {
        echo "    EXISTS!\n";
        for ($i = 1; $i <= 5; $i++)
        {
            echo "        $i: " . $elements[1][$section][$i] . "\n";
        }
    }
    else
    {
        echo "    DOES NOT EXIST!\n";
    }
}
echo "</pre>\n";

一堆pre只是为了在我的测试Apache上格式化输出。它给你这个输出:

Array
(
    [0] => Array
        (
            [0] => master
            [1] => Home
            [2] => our_network
            [3] => doesnotexist
        )

    [1] => Array
        (
            [master] => Array
                (
                    [0] => master
                    [1] => 0
                    [2] => 0
                    [3] => 0
                    [4] => 0
                    [5] => 0
                )

            [Home] => Array
                (
                    [0] => Home
                    [1] => 0
                    [2] => 0
                    [3] => 0
                    [4] => 0
                    [5] => 0
                )

            [our_network] => Array
                (
                    [0] => our_network
                    [1] => 0
                    [2] => 0
                    [3] => 0
                    [4] => 0
                    [5] => 0
                )

        )

)
master
    EXISTS!
        1: 0
        2: 0
        3: 0
        4: 0
        5: 0
Home
    EXISTS!
        1: 0
        2: 0
        3: 0
        4: 0
        5: 0
our_network
    EXISTS!
        1: 0
        2: 0
        3: 0
        4: 0
        5: 0
doesnotexist
    DOES NOT EXIST!

如果您只需要访问一个部分的值,请执行以下操作:

echo "just one section: " . $elements[1]['Home'][3] . "\n";

答案 1 :(得分:-2)

foreach ($elements[0] as $value2) 
{
    echo $value2;
    foreach($elements[$value2] as $value) 
    {

        echo $value;

    }
}