你好,我有一个看起来像这样的数组,

    Array
(
    [0] => 40's
    [1] =>  50's
    [2] =>  60's
)

和一些看起来像这样的代码,

<?php if(isset($playable_age) && in_array('40\'s', $playable_age)) { $set = TRUE; } else { $set = FALSE; } ?>
<div class="checkbox"><?php echo $this->formbuilder->checkbox( 'playable_age[]', "40's", "40's", $set ); ?></div>
<?php if(isset($playable_age) && in_array('50\'s', $playable_age)) { $set = TRUE; } else { $set = FALSE; } ?>
<div class="checkbox"><?php echo $this->formbuilder->checkbox( 'playable_age[]', "50's", "50's", $set ); ?></div>
<?php if(isset($playable_age) && in_array('60\'s', $playable_age)) { $set = TRUE; } else { $set = FALSE; } ?>
<div class="checkbox"><?php echo $this->formbuilder->checkbox( 'playable_age[]', "60's", "60's", $set ); ?></div>

现在第一个if语句返回true,但是第二个和第三个如果返回false,即使数组中存在50和60的值,为什么会这样?

===============>>#1 票数:4 已采纳

看起来在数组中这些值之前有一个空格:

[1] =>  50's
[2] =>  60's
       ^

第一个值没有看到的东西:

[0] => 40's

===============>>#2 票数:0

因为您有语法错误。

你可以这样做:

<?php 
$playable_age = array(0=>'40\'s',1=>'50\'s',2=>'60\'s');
if(isset($playable_age) && in_array('40\'s', $playable_age)) { $set = TRUE; echo "1"; } else { $set = FALSE; echo "2"; } 
if(isset($playable_age) && in_array('50\'s', $playable_age)) { $set = TRUE; echo "3"; } else { $set = FALSE; echo "4"; } 
if(isset($playable_age) && in_array('60\'s', $playable_age)) { $set = TRUE; echo "5"; } else { $set = FALSE; echo "6"; } 
if(isset($playable_age) && in_array('70\'s', $playable_age)) { $set = TRUE; echo "7"; } else { $set = FALSE; echo "8"; } 
?>

===============>>#3 票数:0

在对数组执行逻辑检查之前,创建一个用户定义的函数并使用array_walk调用它以对每个数组值进行trim()。

  ask by Udders translate from so

未解决问题?本站智能推荐:

2回复

PHP的in_array意外结果

当我执行这一小段PHP代码时: 这回事真实 ...... 当然,如果我将严格标志添加到in_array ,我有很好的返回值,但我只是无法理解为什么它返回true (我不能!!)。 如果有人能解释我,今晚我会睡得好。 PS:对不起,这只是好奇心......
2回复

意外的in_array()行为[重复]

这个问题已经在这里有了答案: PHP in_array()/ array_search()奇怪的行为 2回答 假设我有以下数组: 注意“文章”是一个关键,但不是一个值。 由于in_array()搜索匹配的值,所以我希望以下行返回FALSE: 但是,
3回复

PHP in_array()意外结果

这是$ feed_content数组 ----另一个阵列---------- 这是$ arrFeeds数组 这是我的代码: 题: 即使$ feed_content链接值具有$ arrFeeds链接的值,为什么代码总是进入if语句? 我的预期结果应该是我的代码会告
2回复

php in_array()以数组作为指针产生意外结果

我有一个简单的in_array()数组,下面是针示例,但是我希望我的示例可以回显; 在数组中找到匹配项 鉴于两种情况都存在于大海捞针中。 但是,此代码不会产生回声。 我希望有人能帮助我理解为什么我在这里没有比赛。 我已经阅读了http://php.net/manua
1回复

为什么in_array()会返回意外/奇怪的结果?

为什么in_array()有时表现得如此奇怪并且会返回如此意外的结果? 我们来看几个例子: 咦? 这里发生了什么事!? (几年前,我开始对这种奇怪的行为感到疑惑。我认为这对某些人来说可能有用,因此我输入了这个问题。)
1回复

值是In_array吗?

我有一个php函数,用于检查$old_example数组中是否存在URL参数。 一切正常,我进行了一些更改,将数组(现在看起来像$array )修改为多维数组。 我不能将in_array与这样的数组一起使用吗? 任何帮助将不胜感激,我只需要查找值函数来查看tje SRID参数是否在$a
2回复

Codeigniter如果in_array

我正在从控制器传递数据进行查看,我的代码中有代码 它给我印像 现在,我从数据库中传递另一个数据作为二维数组(我想),它看起来像这样 我想检查$ map ['x']和$ map ['y']中是否存在该数组,所以我正在做(不知道其他方法,因为我需要在foreach循环中进行检
3回复

in_array的问题

我有以下相当简单的代码,需要确定数组中是否存在某个值: 即使很明显数字4在数组中,该代码也会返回else bracets内部的代码。 我做错了什么?
3回复

in_array问题

我有几个大数组作为项目,每个数组有5 000 - 10 000个值。 所有都是简单的数组,比如 $array = array(125,345345,345,3485,324,65,746647,3221, ... ); 我正在尝试搜索一些数字,并对不同的数字重复此操作近1000
4回复

PHP-如果in_array

我正在使用CodeIgniter,并创建了自定义表单首选项自定义配置。 在那我有一个如下的数组: Array ( [1] => Category 1 [2] => Category 2 [3] => Category 3 [4] => Category