Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php多维数组if循环_Php_If Statement_Multidimensional Array - Fatal编程技术网

php多维数组if循环

php多维数组if循环,php,if-statement,multidimensional-array,Php,If Statement,Multidimensional Array,我有一个这样的多维数组 $array['value'][1][1] if ($value = $array['value'][1][1]) { echo "It works"; } 现在我想实现这样的if循环 $array['value'][1][1] if ($value = $array['value'][1][1]) { echo "It works"; } 现在,如果我分配像[1][1],[2][1]这样的值,它就可以工作了 是否可以比较整个阵列 我是说如果数组看起来像 ar

我有一个这样的多维数组

$array['value'][1][1]
if ($value = $array['value'][1][1]) {
echo "It works";
} 
现在我想实现这样的if循环

$array['value'][1][1]
if ($value = $array['value'][1][1]) {
echo "It works";
} 
现在,如果我分配像
[1][1],[2][1]
这样的值,它就可以工作了

是否可以比较整个阵列

我是说如果数组看起来像

array[value][1][1],array[value][2][1],……,array[value][n][1]

它可以工作
应该被回显

我试过了

if ($value = $array['value'][][]) {
echo "It works";
} 
但它不起作用。有人能给我正确的语法吗?

函数检查(){
function check() {
    for($i = 0; $i < count($array[$value]); $i++) {
        if($value != $array[$value][$i][1])
            return FALSE;
    }
    echo 'It works!';
}
对于($i=0;$i
我不确定这是否是您正在寻找的功能,但您可以尝试此功能 在您的情况下,$value是1

function($array,$value)
    foreach($array['amazon'] as $val){
        if($value != $val[1])return FALSE;
    }
    return TRUE;
}
该函数通过$array['amazon'][*]运行,并检查每个值的条件。如果发现任何返回的值为FALSE,您可以尝试以下操作:

$itWorks = true;

for( $a = 0; $a < sizeof( $array[value] ); $a ++ ){
    if ( $value != $array[value][$a][1] ){
        $itWorks = false;
        break;
    }
}

if( $itWorks ){
    echo "It works";
}
$itWorks=true;
对于($a=0;$a

当然,你必须用一个合法的值来替换[value]

基于你对你所要完成的事情的评论,我认为下面可能会解决你的困境。如果我在这方面走错了方向,或者有任何其他问题/顾虑,请告诉我

<?php
$forms = array(
    'amazon' => array(
        0 => array(
            1 => 111,
        ),
        1 => array(
            1 => 222,
        ),
        2 => array(
            1 => 333
        )
    )
);

$value = 333;

$it_works = False;
foreach($forms['amazon'] as $array) {
    if($array[1] == $value) {
        $it_works = True;
        break;
    }
}

if($it_works === True) {
    print 'It Works!';
}
?>


在数组中迭代使用for循环有什么问题?您能否提供更多关于您试图实现的目标的信息?我很想帮你,但我不太明白你想要完成什么。您是在尝试确保数组具有正确的维度数,还是尝试迭代每个数组中的每个条目,如果存在,则打印“它有效”?@JoshuaBurns我有一些文本字段。单击“添加另一个”按钮可以复制其中的许多内容。有一个领域叫做亚马逊产品。在表单字段附近,我想显示一个链接按钮来搜索亚马逊产品。只有当数组看起来像
表单[amazon][*][1]
时,才应显示此链接。我希望你明白我的意思。我尝试了for循环解决方案。但它只对第一个字段有效。返回到什么?将false设置为变量嘿,卡尔,谢谢你的回答。我有一些文本字段。单击“添加另一个”按钮可以复制其中的许多内容。有一个领域叫做亚马逊产品。在表单字段附近,我想显示一个链接按钮来搜索亚马逊产品。只有当数组看起来像表单[amazon][*][1]时,才应显示此链接。我希望你明白我的意思。我尝试了for循环解决方案。但它只适用于第一个字段。你好,伙计,我不知道如何使用这里的每个循环。实际上我有一个函数display_字段($field);我应该传递值以显示输入字段。因此,实际上在传递值时,如
form[amazon][1][1]
它会显示字段。可以使用正则表达式吗?我的意思是,像这样
表单[amazon][regex goes here][1]
如果我理解正确,您希望查看是否有任何数组包含键为“1”的数组。如果是这种情况,则不能使用正则表达式同时访问多个键。因此,foreach必须检查每个值。否。事实上,我想使用正则表达式来检查值,比如1,2,3等等,如果($value=form[amazon][regex匹配数字][1]){echo“link”;}下面是。我需要在第72行之后显示按钮