PHP:在Array中找不到键

时间:2014-10-13 13:20:21

标签: php arrays

我的脚本在这里有问题。 我有这个数组:

Array
(
    [KUNDENNUMMER] => 
    [BEZ] => 
    [DATUM] => 2014-10-10
    [VON] => 11:10:36
    [BIS] => 11:48:11
    [TAETIGKEIT] => Berufschule
    [BEZ_01] => 
    [DAUER] => 0001-01-01 00:37:00
    [STUNDEN] => 0.61
    [VERRECHENBAR] => F
    [BEMERKUNG] => 0x000c5cf2000000ba
    [USER_BEZ] => Armani, Kia
    [TZ_BEZ] => 
    [TT_VERRECHENBAR] => F
    [TT_ID] => 80
)

我想回应#34; Cake"当$ row(数组)[TAETIGKEIT] == Berufschule使用此代码

if(strpos($row['TAETIGKEIT'], 'Berufschule') === true) echo "Cake";

但回声永远不会被调用。 我也试着直接比较

if($row['TAETIGKEIT'] == 'Berufschule') echo "Cake";

但它也没有用。 当我做的时候

print_r($row['TAETIGKEIT'];

打印

Berufschule

我做错了什么?

2 个答案:

答案 0 :(得分:1)

总结一下,有问题的代码可能因各种原因而无法正常工作。

我只能假设TAETIGKEIT的值具有尾随或前一个空格。

if(strpos($row['TAETIGKEIT'], 'Berufschule') === true) echo "Cake";
// doesn't work since strpos returns an integer if string is found or `false` if not.
// it never returns true

if($row['TAETIGKEIT'] == 'Berufschule') echo "Cake";
// doesn't work due to the superfluous space, thus it's not exactly the same

解决方案是正确使用strpos

if(strpos($row['TAETIGKEIT'], 'Berufschule') !== false) echo "Cake";

或者在比较之前修剪值

if(trim($row['TAETIGKEIT']) == 'Berufschule') echo "Cake";

正如h2ooooooo所述,var_dump会显示这些附加空格。

答案 1 :(得分:0)

strpos永远不会返回true - 它返回false或整数值,因此使用=== true您将永远无法通过。

试试:

strpos($row['TAETIGKEIT'], 'Berufschule') !== false