【问题标题】:Looping multidimensional array and checking if then in PHP循环多维数组并检查是否在 PHP
【发布时间】:2019-04-01 16:13:01
【问题描述】:

我有这个

<?php

//array[x][y] right?
$condition = array
(
array("cat","meow"),
array("cow","moo"),
array("dog","bark"),
);

//Do I need two For loops to be able to go through each array values?

if($condition==array[x]){
    echo array[y];
}
?>

我正在尝试遍历一个多维数组并在条件正确时打印该数组。我希望我的问题还不够含糊。但我有点卡住了,我不知道如何正确地循环它们。我希望得到任何帮助或为我指明正确的方向。谢谢。

【问题讨论】:

  • 你可能想看看使用foreach 代替 - foreach($condition as $subarray) 或者如果使用关联数组并且想要键和值foreach($condition as $key=&gt;$value)
  • 不确定如果条件正确是什么意思 - $condition 包含什么?例如是cat
  • @NigelRen 甚至没有注意到“条件”部分。好点这个条件是什么?预期的输入和输出是什么

标签: php arrays loops multidimensional-array conditional-statements


【解决方案1】:

在这种情况下,您不需要两个循环,您可以使用 implode。
但一般来说,是的,您需要两个循环。

$condition = array
(
array("cat","meow"),
array("cow","moo"),
array("dog","bark"),
);

foreach($condition as $cond){
    echo implode(" says ", $cond) . "\n";
}

//cat says meow
//cow says moo
//dog says bark

常规方法是按你说的循环两次。

foreach($condition as $cond){
    foreach($cond as $item){
        echo $item ." ";
    }
}

现在我想你也可以这样做:

foreach($condition as $cond){
    echo $cond[0] . " says " . $cond[1] . "\n"; 
}

这将给出与第一个示例相同的结果。

【讨论】:

    【解决方案2】:

    如果我没有误解您的问题,那么您可以使用单个 foreach() 循环来检查您的数组元素值的条件。

    <?php
    $array = array
        (
        array("cat","meow"),
        array("cow","moo"),
        array("dog","bark"),
    );
    //you can use single foreach() loop to iterate your $array
    $condition = 'cat'; //demo condition
    print_r($array);
    foreach($array as $k=>$v){
        if($condition == $v[0]){
            echo $v[1];
        }
    }
    ?>
    

    演示: https://3v4l.org/k7mh0

    【讨论】:

      猜你喜欢
      • 2012-02-19
      • 1970-01-01
      • 2013-06-25
      • 2019-07-17
      • 2012-05-13
      • 1970-01-01
      • 2010-09-26
      • 2010-09-13
      • 2013-10-02
      相关资源
      最近更新 更多