为什么我的PHP多维数组不工作? [英] Why is my PHP multi dimensional array not working?
本文介绍了为什么我的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屋!
查看全文