gpt4 book ai didi

php - 数组和 if 语句并访问每个索引位置

转载 作者:行者123 更新时间:2023-12-04 03:41:24 27 4
gpt4 key购买 nike

我不确定我是否理解 if 语句以及它们如何访问数组,以及我希望的那样。我有这个数组:

如果我 var_dump($count) 我得到:

array(1) { [0]=> object(stdClass)#2472 (1) { ["nmbr_tables"]=> string(1) "4" } } array(1) { [0]=> object(stdClass)#2445 (1) { ["nmbr_tables"]=> string(1) "0" } } array(1) { [0]=> object(stdClass)#2452 (1) { ["nmbr_tables"]=> string(1) "0" } }

所以我写

if($count >= 1){echo "hello";} else {echo "no";}; 

我的预期输出是:

hello
no
no

因为第一个索引位置的 nmbr 为“4”,接下来的两个索引位置的 nmbr 为“0”

我得到的是:

hellohellohello

似乎表明它只关注第一个索引位置。

然后我想也许:

   foreach($count  as $val){
if($count >= 2){echo "hello";} else {echo "no";};
};

没有区别。

如果我 var_export($count) 我得到:

array ( 0 => (object) array( 'nmbr' => '4', ), )array ( 0 => (object) array( 'nmbr' => '0', ), )array ( 0 => (object) array( 'nmbr' => '0', ), )

最佳答案

快速解决方案

看起来你的输入数组 $count 的格式是:

$count = [ (object) [ 'nmbr' => '0', ] ];

所以你的条件应该被格式化为:

echo ($count[0]->nmbr >= 1) ? "hello" : "no", PHP_EOL;

// You want the first [0] item in the subarray of `$count` and you then want to access the property "nmbr"

工作原理

三元逻辑

上述语句中的 echo 使用了带有三元运算符的简写 if 语句。其一般形式为:

CONDITION ? TRUE : FALSE;

// You can use parentheses or not...
// Whatever makes it easiest to read and understand;
// all of these (and the one above) are the same

( CONDITION ) ? ( TRUE ) : ( FALSE );
( CONDITION ) ? ( TRUE ) : FALSE;
( CONDITION ) ? TRUE : FALSE;

相当于:

if(CONDITION){
//Do something if TRUE
}
else{
//Do something if FALSE
}

在此评估三元逻辑并将结果返回到 echo 然后输出字符串...

echo $count[0]->nmbr >= 1 ? "hello" : "no";

注意较大循环的每次迭代 $count 看起来像

$count = [ (object) [ 'nmbr' => '0', ] ];

// Therefore...

$count[0] == (object) [ 'nmbr' => '0', ];

// and finally...

$count[0]->nmbr == 0;

true 上运行代码

有几种方法可以做到这一点:

  1. 使用函数作为真/假条件
    • 注意:你不能在三元结构中使用echo
  2. 改回标准的if

因此,例如,您可以执行以下任一操作:

if($count[0]->nmbr >= 1){
// Code to carry out if true
echo "This is true!";
}
else{
// Code to carry out if false
echo "false logic :(";
}

或者...

function countIsMoreThanOne() : void
{
// Code to carry out if true
echo "This is true!";
}

$count[0]->nmbr >= 1 ? countIsMoreThanOne() : "false logic :(";

或者...

$count[0]->nmbr >= 1 ? print("This is true!") : "false logic :(";

关于php - 数组和 if 语句并访问每个索引位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65973495/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com