为什么我的PHP多维数组不工作? [英] Why is my PHP multi dimensional array not working?

查看:171
本文介绍了为什么我的PHP多维数组不工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的多维数组正在工作。但我似乎无法使用爆炸 in_array 通过 $打电话时限制阵列_ GET

My multi-dimensional array is working. But I cannot seem to use explode or in_array to limit the array when calling via $_GET

<?
$shop = array(
array("red", "black", "blue", "green"),
array("orange"),
array("orange", "black"),
array("pink", "yellow")
);

foreach ($shop as $rowNumber => $row)
{
    echo "<li><b>The row number $rowNumber</b>";
        echo "<ul>";
        foreach ($row as $col) {
            if (in_array($col, explode(' and ', $_GET['filter']))){
                echo "<li>".$col."</li>";
            }
        }
        echo "</ul>";
    echo "</li>";
}

?>

如果我运行 $脚本_ GET [过滤器] ==黑它显示的所有项目 - 它应该只显示两个,例如,这是错误的:其他行不应该出现:

If I run the script with $_GET["filter"]=="black" it displays all items - it should only display two, example this is wrong: the other rows should not appear:

应该是这样的,而不是

推荐答案

解决方案1 ​​

   <?

    $shop = array(
    array("1", "red", "black", "blue and green"),
    array("2", "orange"),
    array("3", "pink", "yellow", "blue and green")
    );

    for ($row = 0; $row < count($shop); $row++)    
     {

            $lis = "";
            for ($col = 0; $col < count($shop[$row]); $col++)
                {
                     if (in_array($shop[$row][$col], explode(' and ', $_GET['filter'])) 
                        || empty($_GET['filter'])){
                        $lis .= "<li>".$col."</li>";
                     }
                }
           if($lis != "") {
             echo "<li><b>The row number $row</b>";
             echo "<ul>";
             echo $lis;
             echo "</ul>";
             echo "</li>";
         }
    }

    ?>

解决方案2

<?

$shop = array(
array("1", "red", "black", "blue and green"),
array("2", "orange"),
array("3", "pink", "yellow", "blue and green")
);

for ($row = 0; $row < count($shop); $row++)    
{
    $lis = "";

    for ($col = 0; $col < count($shop[$row]); $col++)
    {
            if (in_array($shop[$row][$col], explode(' and ', $_GET['filter']))){
                $lis .= "<li>".$col."</li>";
            }
    }

    if($lis=="") {

            echo "$row";

    } else {

            echo $lis;

    }
}

?>

这篇关于为什么我的PHP多维数组不工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆